构建 llvm-clang

构建 llvm-clang

首先自然是拉取 llvm-project 代码,clang 是这个仓库中的一个子目录。

如果只是想要构建 clang

  1. 指定 cmake 的工作目录是 /llvm-project/clang
  2. 安装 llvm 的软件包,这样 find_package(LLVM) 就能找到
  3. 参考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 的汇编代码需要的。

posted @ 2026-07-20 11:45  3的4次方  阅读(11)  评论(0)    收藏  举报