LLVM ClangをVisual Studio 2019でビルドする【C++・MSVC】
LLVM ClangをVisuao Stduio 2019でビルドする方法を紹介します。
環境
- Clang 11.0.0
- CMake 3.1.8.4
- Visual Studio 2019 16.7.6
ダウンロード
こちらのサイトからLLVM、Clang、CMakeをそれぞれダウンロードします。
Clang C Language Family Frontend for LLVM
ダウンロードしたファイルを展開します。
clangはLLVMを解凍したフォルダのこのようなpathになるように配置します。
llvm/tools/clang
ビルド
CMakeを実行してVisual Studioのプロジェクトを作成します。
cmake -G "Visual Studio 16 2019" -Thost=x64 -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_CXX_FLAGS_RELEASE:STRING="/MT" -DCMAKE_CXX_FLAGS_DEBUG:STRING="/MTd" -DCMAKE_INSTALL_PREFIX:PATH="../install/release"
作成したVisual StudioのプロジェクトをMSBuildでビルドします。
Clangのビルドには時間がかかるので必要なプロジェクトだけをビルドします。
Visual StudioのPATHを通す為に最初にvcvars64.batを実行します。
直接vcvars64.batを実行してコマンドプロンプトを起動することもできます。
for /f "usebackq delims=" %%a in (`"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere" -version 16 -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set VSPATH=%%a
call "%VSPATH%/VC/Auxiliary/Build/vcvars64.bat"
MSBuild.exe tools\clang\lib\AST\clangAST.vcxproj /t:build /p:configuration=Debug /p:Platform="x64"
MSBuild.exe tools\clang\lib\AST\clangAST.vcxproj /t:build /p:configuration=Release /p:Platform="x64"
MSBuildはビルドに時間がかかるのでNinjaでのビルドがおすすめです。Ninjaを使うとMSBuildの半分くらいの時間でビルドすることができます。
Ninjaでビルドする方法はこちらの記事で紹介しています。