12,762
回編集
137行目: | 137行目: | ||
クロスコンパイル向けのビルドファイルを生成するために、<code>-DCMAKE_TOOLCHAIN_FILE</code>オプションを、LLVMのインストール時に使用するコンパイラフラグや変数を定義することができる。<br> | クロスコンパイル向けのビルドファイルを生成するために、<code>-DCMAKE_TOOLCHAIN_FILE</code>オプションを、LLVMのインストール時に使用するコンパイラフラグや変数を定義することができる。<br> | ||
<br> | <br> | ||
==== AArch64 ==== | |||
以下の例では、AArch64をターゲットとしたLLVMをクロスビルドおよびインストールしている。<br> | |||
mkdir build && cd build | |||
cmake -G Ninja \ | |||
-DCMAKE_BUILD_TYPE=Release \ | |||
-DCMAKE_INSTALL_PREFIX=<LLVMクロスツールチェーンのインストールディレクトリ> \ | |||
-DLLVM_NATIVE_TOOL_DIR=/<ホスト向けLLVMのインストールディレクトリ>//bin \ | |||
-DCMAKE_TOOLCHAIN_FILE=<CMakeツールチェーンファイルのパス> \ # CMakeツールチェーンファイルを使用する場合 | |||
-DLLVM_BUILD_RUNTIME=Off \ | |||
-DLLVM_INCLUDE_TESTS=Off \ | |||
-DLLVM_INCLUDE_EXAMPLES=Off \ | |||
-DLLVM_ENABLE_BACKTRACES=Off \ | |||
-DCMAKE_CROSSCOMPILING=1 \ | |||
-DLLVM_HOST_ARCH=X86 \ | |||
-DLLVM_HOST_TRIPLE=X86 \ | |||
-DLLVM_TARGET_ARCH="AArch64" \ | |||
-DLLVM_TARGETS_TO_BUILD="AArch64" \ | |||
-DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-unknown-linux-gnu \ | |||
-DCMAKE_CXX_FLAGS='-march=armv8-a -mtune=cortex-a53' \ | |||
-DLLVM_TABLEGEN=/<ホスト向けLLVMのインストールディレクトリ>/bin/llvm-tblgen \ | |||
-DCLANG_TABLEGEN=/<ホスト向けLLVMのインストールディレクトリ>/bin/clang-tblgen \ | |||
-DCMAKE_LIBRARY_ARCHITECTURE=/<ターゲットのシステムルートのパス>/lib \ | |||
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;lld;lldb" \ | |||
-DLLVM_INSTALL_TOOLCHAIN_ONLY=On \ | |||
-DLLDB_ENABLE_PYTHON=0 \ | |||
-DLLDB_ENABLE_LIBEDIT=0 \ | |||
-DLLDB_ENABLE_CURSES=0 \ | |||
-DLLVM_BUILD_LLVM_DYLIB=On \ | |||
-DLLVM_LINK_LLVM_DYLIB=On \ | |||
../llvm | |||
<br> | |||
==== iOS ==== | |||
以下の例では、iOSをターゲットとしたLLVMをクロスビルドおよびインストールしている。<br> | 以下の例では、iOSをターゲットとしたLLVMをクロスビルドおよびインストールしている。<br> | ||
mkdir build && cd build | mkdir build && cd build |