← ソースコード説明書

ビルドガイド共通(共通部分)

作成日: 2026-06-10 / 更新日: 2026-06-10

ネイティブエンジン(packages/native-engine)を各プラットフォーム向けにビルドする際の共通手順をまとめる。macOS / Windows / iOS / Android の 4 ガイドはいずれも本書を土台とし、各ガイドにはプラットフォーム固有の差分(サブ部分)だけを記載する。

対象プラットフォームと差分の早見表

プラットフォームサブガイドジェネレータ / ツールチェーンSDL2出力物
macOS17-build-guide-macos.mdCMake (Unix Makefiles) + clangHomebrew 版で可(ソースも可)kaedevn_native
Windows24-build-guide-windows.mdCMake (Ninja) + MSVCソースから(SHARED / *.dllkaedevn_native.exe + DLL
iOS19-build-guide-ios.mdCMake (Xcode) + iOS SDKソースから(静的リンク)kaedevn_ios.app
Android18-build-guide-android.mdGradle + NDK (CMake/JNI)ソースから(NDK ビルド)app-debug.apk
Switch25-build-guide-switch.md(NDA SDK・公開ビルド不可準備状況のみ

エンジンコード(SDL2Engine / GLRenderer / 各 Manager)は 4 プラットフォーム共通。差異は main.cpp と一部 Manager の #ifdef__ANDROID__ / __APPLE__ / _WIN32)に閉じている。

全体像

.ksc / .ks → コンパイル済み Op[]
    ↓
KscVM (C++) + OpRunner
    ↓
IOpHandler 実装(ネイティブ)
    ↓
SDL2(ウィンドウ / 入力 / 音声)+ OpenGL(GLRenderer)/ Filament(VRM)

Step 1: リポジトリのクローン

git clone https://github.com/mkanakureon/kaedevn-monorepo.git
cd kaedevn-monorepo

# Web 側の依存が必要な場合のみ
npm install

Step 2: SDL2 ソースの取得

SDL2 本体と satellite ライブラリ(SDL2_image / SDL2_ttf / SDL2_mixer)+その vendored 依存(ogg, vorbis, freetype, harfbuzz 等)を取得する。配置先は packages/native-engine/external/

# macOS / Linux
bash scripts/build/download-sdl2-sources.sh

# Windows(PowerShell)
pwsh -File scripts/build/download-sdl2-sources.ps1
ライブラリバージョン
SDL22.30.12
SDL2_image2.8.4
SDL2_ttf2.22.0
SDL2_mixer2.8.1

macOS だけは例外:Homebrew 版 SDL2(brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer)を使えばソース取得は不要。iOS / Android / Windows はソースからのビルドが必須。

Step 3: ビルドの基本形

各プラットフォームともコアは CMake の configure → build(Android のみ Gradle が JNI 経由で CMake を呼ぶ)。ジェネレータとツールチェーンだけがプラットフォームで変わる(早見表参照)。サブガイドの該当ステップに従う。

# 例(macOS デスクトップ)
cd packages/native-engine
mkdir -p build && cd build
cmake ..
cmake --build . -j<コア数>

共通のハマりポイント

A. SDL2 not found(configure 失敗)

SDL2 が見つからない。macOS は Homebrew のパス(/opt/homebrew)を CMAKE_PREFIX_PATH に通す。ソースビルドのプラットフォームは Step 2 の取得が完了しているか確認する。

B. 'SDL2/SDL_image.h' file not found(ソースビルド共通)

ソースビルドではヘッダが SDL2/ サブディレクトリに並ばないため、#include <SDL2/...> が解決できない。CMake 側に互換 include ディレクトリsdl2-compat-include/SDL2/ にヘッダをコピーして include パスに追加)を作る仕組みが入っている(iOS / Android / Windows の各 CMakeLists に実装済み)。macOS Homebrew では発生しない。

C. No cmake project for ogg found / mixer の vendored 依存欠落

download-sdl2-sources.* が未実行か途中失敗。再実行すると satellite ライブラリの vendored 依存(ogg, vorbis, freetype 等)も取得される。

D. クリーンビルド

CMake キャッシュ破損時は build ディレクトリを丸ごと削除して再 configure する(各サブガイドのクイックリファレンス参照)。

次に読む

Ad: stickyBottom (728x90)
kaedevn - ノベルゲームを作れるプラットフォーム