You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake如何在文件无变更时跳过LLVM构建的配置步骤

CMake 跳过重复配置的实现方案

核心结论

CMake 本身没有原生的 --only-if-not-configured 类参数,但可以通过两种方案实现仅在未配置时执行配置步骤的需求,特别适配你在CI中构建LLVM的场景:

方案1:脚本判断缓存文件,直接跳过配置

CMake 完成配置后会在构建目录生成CMakeCache.txt文件,只要该文件存在且你的配置参数没有变更,就不需要重新执行配置步骤。你可以在bat脚本中加一层文件存在性判断:

@echo off
set "BUILD_DIR=%BUILD_FOLDER%\llvm"
:: 仅当构建目录不存在或缓存文件不存在时执行配置
if not exist "%BUILD_DIR%\CMakeCache.txt" (
    cmake -G"Visual Studio 16 2019" ^
            -DBUILD_SHARED_LIBS=Off ^
            -DLLVM_INCLUDE_TESTS=Off ^
            -DLLVM_ENABLE_DIA_SDK=1 ^
            -DCMAKE_BUILD_TYPE=Release ^
            -DLLVM_ENABLE_LIBCXX=OFF ^
            -DLLVM_BUILD_LLVM_C_DYLIB=ON ^
            -DLLVM_POLLY_LINK_INTO_TOOLS=ON ^
            -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON ^
            -DLLVM_LINK_LLVM_DYLIB=ON ^
            -DLLVM_ENABLE_EH=ON ^
            -DLLVM_ENABLE_FFI=OFF ^
            -DLLVM_ENABLE_RTTI=ON ^
            -DLLVM_INCLUDE_DOCS=OFF ^
            -DLLVM_INCLUDE_TESTS=OFF ^
            -DLLVM_INSTALL_UTILS=ON ^
            -DLLVM_ENABLE_Z3_SOLVER=OFF ^
            -DLLVM_OPTIMIZED_TABLEGEN=ON ^
            -DLLVM_TARGETS_TO_BUILD=all ^
            -DLLDB_USE_SYSTEM_DEBUGSERVER=ON ^
            -DLLDB_ENABLE_PYTHON=OFF ^
            -DLLDB_ENABLE_LUA=OFF ^
            -DLLDB_ENABLE_LZMA=ON ^
            -DLLDB_INCLUDE_TESTS=OFF ^
            -DLIBOMP_INSTALL_ALIASES=OFF ^
            -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;mlir;polly" ^
            -DLLVM_ENABLE_RUNTIMES="compiler-rt" ^
            -DCMAKE_INSTALL_PREFIX=%INSTALL_FOLDER%\llvm ^
            -Thost=x64 ^
            -B %BUILD_DIR% ^
            -S %SOURCE_FOLDER%\llvm-project-llvmorg-12.0.1\llvm
)
:: 直接执行构建,不会触发重复配置
cmake --build %BUILD_DIR% --config Release --target install

注意

你当前的配置命令中重复定义了LLVM_TARGETS_TO_BUILD参数(先后赋值为X86和all),CMake会以最后一次赋值为准,重复的参数会拖慢配置校验速度,建议删除冗余定义。

方案2:使用CMake构建命令自动触发配置

你可以不用单独执行配置步骤,直接调用cmake --build命令,CMake会自动检测构建目录的配置状态:如果没有配置过会先执行配置,已经配置完成且参数无变更的话,直接进入构建环节,不会重复执行配置步骤。

:: 首次执行自动完成配置+构建,后续执行仅走构建流程
cmake --build %BUILD_FOLDER%\llvm --config Release --target install

Windows配置速度优化补充

Windows平台Visual Studio生成器的配置速度本身慢于Linux的Makefile/Ninja生成器,你也可以改用Ninja生成器进一步加快配置和构建速度:

  1. 先安装Ninja并加入系统PATH
  2. 配置命令修改生成器为-G"Ninja",同时提前配置好MSVC编译环境,配置速度可以缩短到1分钟以内。

内容的提问来源于stack exchange,提问作者Tomaz Canabrava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 15:42:02