c++ - 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 什么的。
解决方案
推荐阅读
- android - Android 9.0 操作系统的 Sinch 验证失败
- ruby-on-rails - 如何登录/退出使用终端而不是浏览器的设计的 Rails 应用程序的用户帐户?
- javascript - 悬停时调用元素(没有唯一 ID)的函数
- java - cxf 客户端 (3.1.2) 中的 SNI 配置
- flutter - 警报对话框中复选框磁贴的动态列表不起作用
- solaris - solaris中查找堆内存的命令是什么
- api - 如何在 API Manager (apim) 中对 JWT 进行错误处理
- c# - 无法删除“Program Files\my app”文件夹中的文件:System.UnauthorizedAccessException:拒绝访问路径“”
- spring - 如何记录空通道
- java - 具有名称和数字的列表的最快搜索算法是什么