← ソースコード説明書
1.
2.
4.
macOS ビルドガイド
概要
macOS (Apple Silicon / Intel) でネイティブエンジンをビルドし、背景・立ち絵・テキストが表示される状態まで持っていく手順。SDL2 + OpenGL で動作する。
前提条件
| ツール | バージョン | インストール |
|---|---|---|
| macOS | 12+ (Monterey 以降) | — |
| Xcode Command Line Tools | 14+ | xcode-select --install |
| CMake | 3.16+ | brew install cmake |
| Homebrew | 最新 | brew.sh |
| SDL2 + satellite libs | 2.30+ | brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer |
Homebrew でまとめてインストール
brew install cmake sdl2 sdl2_image sdl2_ttf sdl2_mixer
Step 1: リポジトリのクローンと依存インストール
git clone https://github.com/mkanakureon/kaedevn-monorepo.git
cd kaedevn-monorepo
# SDL サブモジュール初期化
git submodule update --init packages/sdl
# Node.js 依存(Web 側が必要な場合)
npm install
Step 2: ネイティブエンジンのビルド
cd packages/native-engine
mkdir -p build && cd build
# Configure
cmake ..
# Build(CPU コア数に応じて並列)
cmake --build . -j$(sysctl -n hw.ncpu)
成功すると kaedevn_native バイナリが生成される。
ビルド出力
packages/native-engine/build/
├── kaedevn_native # メインバイナリ
└── unit_tests # C++ ユニットテスト
Step 3: 実行
# ビルドディレクトリから実行(assets は相対パスで参照)
cd packages/native-engine
./build/kaedevn_native
ウィンドウが開き、背景・立ち絵・日本語テキストが表示される。
テスト実行
./build/unit_tests
Step 4: SDL ライブラリ単体のビルド(任意)
Homebrew 版ではなく SDL をソースからビルドしたい場合:
# リポジトリルートから
./scripts/build-sdl.sh macos
テストプログラムで動作確認:
packages/sdl/build/test/testdraw
packages/sdl/build/test/testsprite
ハマりポイント
1. sdl2-config / pkg-config が SDL2 を見つけない
症状: cmake .. で SDL2 not found エラー。
原因: Homebrew が /opt/homebrew (Apple Silicon) にインストールするが、CMake のデフォルト検索パスに含まれていない。
解決:
# CMakeLists.txt に以下が必要(すでに設定済み)
list(APPEND CMAKE_PREFIX_PATH "/opt/homebrew")
もし手動でビルドする場合は環境変数で指定:
cmake .. -DCMAKE_PREFIX_PATH=/opt/homebrew
2. SDL2_image / SDL2_ttf / SDL2_mixer のリンクエラー
症状: pkg_check_modules で SDL2_image REQUIRED が失敗。
原因: pkg-config が Homebrew のパスを見ていない。
解決:
export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig"
3. OpenGL フレームワークが見つからない
症状: リンク時に OpenGL framework not found。
原因: Xcode Command Line Tools のみの環境では OpenGL ヘッダが不足する場合がある。
解決:
xcode-select --install
# または Xcode をフルインストール
4. #include <SDL2/SDL.h> が解決できない
症状: コンパイル時に 'SDL2/SDL.h' file not found。
原因: Homebrew でインストールした SDL2 のヘッダパスが SDL2/ サブディレクトリになっている場合とそうでない場合がある。
解決: CMakeLists.txt の find_package(SDL2 REQUIRED CONFIG) が正しく設定されていれば自動解決される。手動で追加する場合:
cmake .. -DSDL2_DIR=/opt/homebrew/lib/cmake/SDL2
5. クリーンビルドが必要なとき
CMake のキャッシュが壊れた場合:
rm -rf packages/native-engine/build
mkdir -p packages/native-engine/build && cd packages/native-engine/build
cmake .. && cmake --build . -j$(sysctl -n hw.ncpu)
クイックリファレンス
# === セットアップ ===
brew install cmake sdl2 sdl2_image sdl2_ttf sdl2_mixer
git submodule update --init packages/sdl
# === ビルド ===
cd packages/native-engine
mkdir -p build && cd build && cmake .. && cmake --build . -j$(sysctl -n hw.ncpu)
# === 実行 ===
cd packages/native-engine && ./build/kaedevn_native
# === テスト ===
./build/unit_tests
# === クリーンビルド ===
rm -rf build && mkdir build && cd build && cmake .. && cmake --build . -j$(sysctl -n hw.ncpu)
Ad: stickyBottom (728x90)