← ソースコード説明書

macOS ビルドガイド

概要

macOS (Apple Silicon / Intel) でネイティブエンジンをビルドし、背景・立ち絵・テキストが表示される状態まで持っていく手順。SDL2 + OpenGL で動作する。

前提条件

ツールバージョンインストール
macOS12+ (Monterey 以降)
Xcode Command Line Tools14+xcode-select --install
CMake3.16+brew install cmake
Homebrew最新brew.sh
SDL2 + satellite libs2.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_modulesSDL2_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)
kaedevn - ノベルゲームを作れるプラットフォーム