該儲存庫嘗試透過使用當前的開發實踐和工具、修復問題以及添加更好地支援當今系統的功能來實現 DOSBox 程式碼庫的現代化。
Linux、Windows、macOS
發展建設。
特徵 | 地位 |
---|---|
版本控制 | git |
語言 | C++20 |
雪迪龍 | >= 2.0.5 |
記錄 | C++ 5的 Loguru |
建構系統 | 介子或 Visual Studio 2022 |
CI | 是的 |
靜態分析 | 是1,3,4 |
動態分析 | 是的 |
clang 格式 | 是的 |
開發建置 | 是的 |
單元測試 | 是6 |
自動回歸測試 | 在製品 |
DOSBox Staging 具有以下庫相依性:
包裹 | 庫名稱 | 提供功能 | 在場 | 介子包裹 | VCPKG | 回購可用性 |
---|---|---|---|---|---|---|
流體合成器 | 流體合成器 | 通用 MIDI 播放 | 選修的 | 是的 | 是的 | 常見的 |
谷歌測試+模擬 | 格莫克 | 單元測試(開發)框架 | 選修的 | 是的 | 是的 | 常見的 |
IIR | IR1 | 音訊過濾 | 強制的 | 是的 | 是的 | 稀有的 |
庫檔案 | 庫檔案 | 螢幕截圖的 PNG 編碼 | 選修的 | 是的 | 是的 | 很常見 |
穆特 | libmt32emu | Roland MT-32 和 CM-32L 播放 | 選修的 | 是的 | 是的 | 稀有的 |
作品文件 | 作品文件 | Opus 編碼曲目檔案的 CDDA 播放 | 強制的 | 不? | 是的 | 常見的 |
雪迪龍2.0 | sdl2 | 用於視訊、音訊和事件的與作業系統無關的 API | 強制的 | 是的 | 是的 | 常見的 |
SDL_net 2.0 | sdl2網絡 | 用於模擬串列和 IPX 的網路 API | 選修的 | 是的 | 是的 | 常見的 |
斯利普 | 庫斯利普 | 用於乙太網路的非特權虛擬 TCP/IP 堆疊 | 選修的 | 是的 | 是的 | 不太常見 |
DSP | DSP | 音頻重採樣 | 強制的 | 是的 | 是的 | 常見的 |
崔西探查器 | 崔西 | 活動簡介(發展) | 選修的 | 是的 | 是的 | 稀有的 |
茲庫 | 茲庫 | ZMBV視訊捕捉 | 選修的 | 不? | 是的 | 很常見 |
zlib ng | zlib ng | ZMBV 視訊擷取(效能較高的 zlib 替代品) | 選修的 | 是的 | 是的 | 常見的 |
請參閱我們使用的目前庫版本的子項目中的 Meson 包裝檔。
克隆儲存庫(一次性步驟):
git clone https://github.com/dosbox-staging/dosbox-staging.git
閱讀 BUILD.md 以獲得全面的編譯指南。
筆記
CMake 支援目前是一項實驗性內部專用功能,正在進行中;它還沒有準備好供公眾消費。請忽略來源樹中的
CMakeLists.txt
檔案。
安裝適合您作業系統的建置依賴項:
# Fedora
sudo dnf install ccache gcc-c++ meson alsa-lib-devel libatomic libpng-devel
SDL2-devel SDL2_net-devel opusfile-devel
fluidsynth-devel iir1-devel mt32emu-devel libslirp-devel
speexdsp-devel libXi-devel zlib-ng-devel
# Debian, Ubuntu
sudo apt install ccache build-essential libasound2-dev libatomic1 libpng-dev
libsdl2-dev libsdl2-net-dev libopusfile-dev
libfluidsynth-dev libslirp-dev libspeexdsp-dev libxi-dev
# Install Meson on Debian-11 "Bullseye" or Ubuntu-21.04 and newer
sudo apt install meson
# Arch, Manjaro
sudo pacman -S ccache gcc meson alsa-lib libpng sdl2 sdl2_net
opusfile fluidsynth libslirp speexdsp libxi pkgconf
# openSUSE
sudo zypper install ccache gcc gcc-c++ meson alsa-devel libatomic1 libpng-devel
libSDL2-devel libSDL2_net-devel
opusfile-devel fluidsynth-devel libmt32emu-devel libslirp-devel
speexdsp libXi-devel
# Void Linux
sudo xbps-install -S SDL2-devel SDL2_net-devel alsa-lib-devel
fluidsynth-devel libiir1-devel libmt32emu-devel
libpng-devel libslirp-devel opusfile-devel
speexdsp-devel libatomic-devel libXi-devel
# NixOS
# With Home Manager on home.nix (Recommended Permanent Installation)
home.packages = [ pkg-config gcc_multi cmake ccache SDL2 SDL2_net
fluidsynth glib gtest libGL libGLU libjack2 libmt32emu libogg
libpng libpulseaudio libslirp libsndfile meson ninja opusfile
libselinux speexdsp stdenv alsa-lib xorg.libXi irr1 ]
# Note: the same package list will work with environment.systemPackages
# on configuration.nix
# macOS
xcode-select --install
brew install cmake ccache meson libpng sdl2 sdl2_net opusfile
fluid-synth libslirp pkg-config python3 speexdsp
查看主分支:
# commit or stash any personal code changes
git checkout main -f
拉取最新更新。每次你想要一個新的構建時,這是必要的:
git pull
設定建置。這是克隆儲存庫或清理工作目錄之後的一次性步驟:
meson setup build
以上啟用了 DOSBox Staging 的所有功能特性。如果您有興趣查看 Meson 的所有設定選項,請執行meson configure
。
編譯原始碼。每次你想要一個新的構建時,這是必要的:
meson compile -C build
您的二進位檔案是: build/dosbox
這個二進位檔案取決於與其相關的本地資源,因此我們建議從PATH
符號連結到該二進位文件,例如~/.local/bin/
。
玩得開心!
首先,您需要設定 vcpkg 來安裝建置依賴項。 vcpkg 啟動後,開啟 PowerShell 並執行:
PS: > .vcpkg integrate install
此步驟將確保 MSVC 可以使用 vcpkg 建置、尋找和連結所有依賴項。
啟動 Visual Studio 並開啟檔案vsdosbox.sln
。確保選擇x64
作為解決方案平台。使用Ctrl+Shift+B建立所有項目。
請注意,第一次建置配置時,相依性將自動建置並儲存在vcpkg_installed
目錄中。這可能需要很長的時間。
其他建置系統和作業系統的說明記錄在 BUILD.md 中。
作業系統特定指令的連結:MSYS2、MacPorts、Haiku、NixOS。
上游提交會及時匯入此儲存庫,請參閱分支svn/trunk
。
svn/*
- 來自 SVN 的分支forks/*
- 各種廢棄的 DOSBox 分支的代碼vogons/*
- Vogons 論壇上發布的社區補丁與模式svn/*
相符的 Git 標籤指向建立時 SVN「標籤」路徑引用的提交。
此外,我們以 Git 註釋的形式將一些可選元資料附加到提交中。要獲取它們,請運行:
git fetch origin " refs/notes/*:refs/notes/* "
在對網站或文件進行變更之前,請參閱文件指南。