clangをソースアーカイブからビルドする方法のメモです。
動機としては、デバッグシンボル付きのlibclangがほしかったので、自分でビルドしました。
正確な情報が欲しい場合は、http://clang.llvm.org/get_started.html とか http://llvm.org/docs/GettingStarted.html#unpacking-the-llvm-archives を見てください。
環境
- Visual Studio 2019 16.3.4
- ☑ワークロードでC++によるデスクトップ開発をインストールする必要はある。
- 個別コンポーネントで☑Python 3 64ビット(3.7.4)をインストールする必要はある。
- 他にも必要かもしれないが、調べていない。
- CMake
- Windows 10 64bit version 1903
- 潤沢なメモリ(とくにリンカーに必要)
- ざっくり42GB以上の空き容量(Debugビルドだとさらに倍以上)
ソースアーカイブ
llvmとclang、そしておまけでclang-tools-extraをダウンロードしておきます。
- llvm-9.0.0.src.tar.xz
- cfe-9.0.0.src.tar.xz
- clang-tools-extra-9.0.0.src.tar.xz
ディレクトリ構成
ここでは作業ディレクトリを C:\tmp\llvm-9.0.0
とします。
その中に、ソースアーカイブを展開します。
C:\TMP\LLVM-9.0.0
├─cfe-9.0.0.src
├─clang-tools-extra-9.0.0.src
└─llvm-9.0.0.src
リネームします。
そしてbuild
というディレクトリを作ります。
C:\TMP\LLVM-9.0.0
├─clang
├─clang-tools-extra
├─build
└─llvm
CMakeとビルド
x64 Native Tools コマンドプロンプトを開く。
REM どうせなら、使いそうなターゲットだけに絞っておくため、`LLVM_TARGETS_TO_BUILD=AArch64;ARM;WebAssembly;X86;RISCV`としておく。
cd C:\tmp\llvm-9.0.0\build
"c:\Program Files\CMake\bin\cmake.exe" ..\llvm ^
-Thost=x64 ^
-G "Visual Studio 16 2019" ^
-A x64 ^
-DCMAKE_INSTALL_PREFIX=c:\tmp\llvm-9.0.0\install ^
-DCMAKE_BUILD_TYPE=RelWithDebInfo ^
-DLLVM_INCLUDE_TESTS=OFF ^
-DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra ^
-DLLVM_TARGETS_TO_BUILD=AArch64;ARM;WebAssembly;X86;RISCV
REM 並行ビルド数を2(場合によっては1)にしてビルド。
REM ビルド中に他の作業ができるように、優先度は下げて実行する。
start /BELOWNORMAL /WAIT /B msbuild -m:2 INSTALL.vcxproj -p:Configuration=RelWithDebInfo