构建 llvm-clang
构建 llvm-clang
首先自然是拉取 llvm-project 代码,clang 是这个仓库中的一个子目录。
如果只是想要构建 clang
- 指定 cmake 的工作目录是
/llvm-project/clang - 安装 llvm 的软件包,这样
find_package(LLVM)就能找到 - 参考Clang - Getting Started进行编译
如果是想要构建 clang,且其依赖的 llvm 模块也是源码构建
则可以使用 llvm-project 提供的 CMakePresets.json 。这个 JSON 中提供的预设配置都是 hidden 的,所以需要自己写一个 CMakeUserPresets.json 来继承其中的预设来使用。
我的配置(放在 /llvm-project/llvm 下):
{
"version": 6,
"configurePresets": [
{
"name": "clang-cl-debug",
"displayName": "clang-cl Debug",
"description": "Configure LLVM with clang enabled, using clang-cl and Ninja on Windows.",
"inherits": [
"llvm-enable-projects-clang",
"llvm-export-compile-commands"
],
"generator": "Ninja",
"binaryDir": "${sourceParentDir}/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_C_COMPILER": {
"type": "FILEPATH",
"value": "C:/Program Files/LLVM/bin/clang-cl.exe"
},
"CMAKE_CXX_COMPILER": {
"type": "FILEPATH",
"value": "C:/Program Files/LLVM/bin/clang-cl.exe"
},
"CMAKE_ASM_MASM_COMPILER": {
"type": "FILEPATH",
"value": "D:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/ml64.exe"
}
}
}
],
"buildPresets": [
{
"name": "clang-cl-debug-clang",
"displayName": "clang-cl Debug: clang",
"configurePreset": "clang-cl-debug",
"targets": [
"clang"
]
}
]
}
其中 CMAKE_ASM_MASM_COMPILER 是编译 blake3 的汇编代码需要的。

浙公网安备 33010602011771号