iOS向けクロスコンパイル
このページはiOSターゲット用にV8をビルドするための簡単な紹介ガイドです。
必須要件
- XcodeがインストールされたmacOS(OS X)ホストマシン。
- 64ビットのターゲットiOSデバイス(レガシー32ビットiOSデバイスは非対応)。
- V8バージョン7.5またはそれ以降。
- iOSでは(2020年12月時点)jitlessが必須です。そのため、フラグ '--expose_gc --jitless' を使用してください。
初期設定
V8をビルドするための手順に従って作業を進めてください。
v8
ソースディレクトリの親ディレクトリにある .gclient
設定ファイルに target_os
を追加して、iOSクロスコンパイルに必要なツールを取得します。
# [... .gclient の他の内容 (例えば'solutions' 変数など) ...]
target_os = ['ios']
.gclient
を更新した後、gclient sync
を実行して追加のツールをダウンロードします。
手動ビルド
このセクションでは、物理的なiOSデバイスまたはXcode iOSシミュレータで使用するためのモノリシックなV8バージョンをビルドする方法を示しています。このビルドの出力は、すべてのV8ライブラリとV8スナップショットを含む libv8_monolith.a
ファイルです。
次のキーを挿入して、gn args out/release-ios
を実行し、GNビルドファイルをセットアップします:
ios_deployment_target = 10
is_component_build = false
is_debug = false
target_cpu = "arm64" # シミュレータビルドの場合は "x64"。
target_os = "ios"
use_custom_libcxx = false # Xcodeのlibcxxを使用。
v8_enable_i18n_support = false # 小さいバイナリを生成。
v8_monolithic = true # v8_monolithターゲットを有効化。
v8_use_external_startup_data = false # スナップショットはバイナリに含まれる。
v8_enable_pointer_compression = false # iOSでは未対応。
次にビルドします:
ninja -C out/release-ios v8_monolith
最後に、生成された libv8_monolith.a
ファイルをスタティックライブラリとしてXcodeプロジェクトに追加します。アプリケーションにV8を埋め込む詳細なドキュメンテーションについては、V8の埋め込みを開始するを参照してください。