このガイドでは、Simutrans の開発環境をセットアップする手順を説明します。
このドキュメントは以下の目的で作成されています:
対象読者:
# vcpkgをクローン
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
# vcpkgをビルド
.\bootstrap-vcpkg.bat
# 環境変数を設定(オプション)
setx VCPKG_ROOT "%CD%"
オプション A: vcpkg.json を使用(推奨)
Simutrans のプロジェクトルートには vcpkg.json が含まれており、Visual Studio が自動的に依存関係をインストールします。
オプション B: 手動でインストール
# vcpkgディレクトリに移動
cd [vcpkg-root]
# 必要なライブラリをインストール(vcpkg.jsonと同じ内容)
.\vcpkg install freetype:x64-windows-static
.\vcpkg install miniupnpc:x64-windows-static
.\vcpkg install pthread:x64-windows-static
.\vcpkg install zstd:x64-windows-static
.\vcpkg install sdl2:x64-windows-static
.\vcpkg install zlib:x64-windows-static
注意: tools/install-building-libs-x64.bat スクリプトは古くなっている可能性があります。上記の手動インストールコマンドまたは vcpkg.json の使用を推奨します。
Simutrans.slnを Visual Studio で開くcd /c/dev/simutrans
./tools/setup-mingw.sh
このスクリプトは自動的に:
# configure(初回のみ)
./configure
# ビルド
make -j$(nproc)
cd ~/dev/simutrans
sudo ./tools/setup-debian.sh
このスクリプトは以下をインストール:
# ビルドツール
sudo apt-get install build-essential autoconf pkg-config
# 必須ライブラリ
sudo apt-get install zlib1g-dev
sudo apt-get install libpng-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libbz2-dev
sudo apt-get install libsdl2-dev
# オプションライブラリ
sudo apt-get install libzstd-dev
sudo apt-get install libminiupnpc-dev
sudo apt-get install libfluidsynth-dev
sudo apt-get install libfontconfig1-dev
# configure
autoconf
./configure
# ビルド(コア数に応じて-jを調整)
make -j$(nproc)
# 実行ファイルは build/default/sim に生成される
# ビルドツール
sudo pacman -S base-devel autoconf pkg-config
# 必須ライブラリ
sudo pacman -S zlib libpng freetype2 bzip2 sdl2
# オプションライブラリ
sudo pacman -S zstd miniupnpc fluidsynth fontconfig
# ビルドツール
sudo dnf install gcc gcc-c++ make autoconf pkgconfig
# 必須ライブラリ
sudo dnf install zlib-devel libpng-devel freetype-devel bzip2-devel SDL2-devel
# オプションライブラリ
sudo dnf install libzstd-devel miniupnpc-devel fluidsynth-devel fontconfig-devel
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# ビルドツール
xcode-select --install
# 依存ライブラリ
brew install autoconf automake
brew install sdl2
brew install freetype
brew install libpng
brew install zstd
brew install miniupnpc
brew install pkg-config
cd ~/dev/simutrans
# configure
autoreconf -ivf
./configure
# ビルド
make -j$(sysctl -n hw.ncpu)
# バージョン情報生成
make OSX/getversion
# ビルドディレクトリを作成
mkdir build
cd build
# 設定(ジェネレーターを指定)
cmake -G "Unix Makefiles" ..
# または Ninjaを使用(高速)
# cmake -G "Ninja" ..
# ビルド
cmake --build . -j$(nproc) # Linux
cmake --build . -j$(sysctl -n hw.ncpu) # macOS
# 実行ファイルは build/simutrans/ に生成される
# ビルドディレクトリを作成
mkdir build
cd build
# 設定
cmake.exe .. -G "Visual Studio 16 2019" -A x64 `
-DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake
# ビルド
cmake --build . --config Release
# または Visual Studioで開く
# simutrans.slnが生成される
# バックエンドの選択
cmake .. -DSIMUTRANS_BACKEND=sdl2 # SDL2(デフォルト)
cmake .. -DSIMUTRANS_BACKEND=gdi # GDI(Windows)
cmake .. -DSIMUTRANS_BACKEND=none # サーバー
# ビルドタイプ
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
# リビジョン番号を手動設定
cmake .. -DSIMUTRANS_USE_REVISION=12345
svn checkout svn://servers.simutrans.org/simutrans/trunk simutrans
git clone https://github.com/simutrans/simutrans.git
注意: Git ミラーを使用する場合、ネットワークゲーム参加時は手動でバージョンを設定する必要があります。
ビルドしても実行ファイルのみが生成されます。ゲームを実行するには、Pakset が必要です。
cd simutrans
.\tools\get_pak.ps1
cd simutrans
./tools/get_pak.sh
推奨 Pakset:
# -use_workdirで既存のインストールを指定
./build/default/sim -use_workdir /path/to/simutrans
Pakset をダウンロード後:
cd simutrans
../build/default/sim
{
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"cmake.buildDirectory": "${workspaceFolder}/build",
"cmake.configureSettings": {
"CMAKE_BUILD_TYPE": "Debug",
"SIMUTRANS_BACKEND": "sdl2"
}
}
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Simutrans",
"type": "shell",
"command": "make",
"args": ["-j8"],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"]
}
]
}
Simutrans.slnを開く-DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake
Linux/macOS:
# pkg-configのパスを確認
pkg-config --list-all | grep -i sdl2
# パスを追加(必要に応じて)
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
Windows (MSVC):
解決方法:
# SDL2が正しくインストールされているか確認
# Linux/macOS
pkg-config --cflags sdl2
# ない場合は再インストール
sudo apt-get install --reinstall libsdl2-dev # Ubuntu/Debian
brew reinstall sdl2 # macOS
Linux:
# 不足しているライブラリを確認
ldd build/default/sim
# 必要に応じてライブラリを追加
sudo ldconfig
# Homebrewのパーミッション修正
sudo chown -R $(whoami) /usr/local/lib /usr/local/include
/を使用(\ではなく)# MinGWツールチェーンをインストール
sudo apt-get install mingw-w64
# configure時にホストを指定
./configure --host=x86_64-w64-mingw32
# ビルド
make -j$(nproc)
ビルド時間を短縮:
# CPU コア数を確認
# Linux:
nproc
# macOS:
sysctl -n hw.ncpu
# その数でビルド
make -j8 # 8コアの場合
# Makeの場合
make FLAGS="-g -O0"
# CMakeの場合
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
# Makeの場合
make FLAGS="-O3 -march=native"
# CMakeの場合
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
CMakeLists.txt, cmake/SimutransCompileOptions.cmakeMakefile, common.mkSimutrans.sln, *.vcxprojvcpkg.jsonconfig.default, config.templatetools/setup-debian.shsetup-development.shtools/install-building-libs-*.batSimutrans の開発環境セットアップは、プラットフォームごとに最適化されています:
主な特徴:
環境を構築したら、次は TECHNICAL_ARCHITECTURE.md でコードベースを理解しましょう。
documentation/coding_styles.txtでコーディング規約を確認