首页 > 解决方案 > CMake:如果文件没有更改,则忽略配置步骤

问题描述

它广泛记录了如何在 Windows 上构建 llvm 和 clang 以将它们用作独立工具,我正在创建一个脚本来在 CI 上运行它。bat 脚本为配置步骤调用 cmake,但配置步骤需要 5 多分钟才能运行,而构建则需要约 40 分钟。

在 linux 上,当运行 cmake 配置步骤时,它运行得非常快并且不会再次产生工件 - 缩短了编译时间。

我的配置步骤如下:


cmake -G"Visual Studio 16 2019" ^
        -DBUILD_SHARED_LIBS=Off ^
        -DLLVM_INCLUDE_TESTS=Off ^
        -DLLVM_ENABLE_DIA_SDK=1 ^
        -DLLVM_TARGETS_TO_BUILD="X86" ^
        -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_FOLDER%\llvm ^
        -S %SOURCE_FOLDER%\llvm-project-llvmorg-12.0.1\llvm

有什么我可以传递给 cmake 以检查配置是否在重新配置之前已经发生?一个 --only-if-not-configured 什么的。

标签: c++cmake

解决方案


推荐阅读