cmake - 将当前编译器转发到 ExternalProject

标签 cmake external-project

我正在尝试使用 ExternalProject模块:

ExternalProject_Add( googlebenchmark
                 GIT_REPOSITORY "https://github.com/google/benchmark.git"
                 TLS_VERIFY ON
                 CMAKE_CACHE_DEFAULT_ARGS -DBENCHMARK_ENABLE_TESTING:BOOL=OFF
                 SOURCE_DIR "${CMAKE_BINARY_DIR}/third_party/gbenchmark"
                 INSTALL_DIR "${CMAKE_BINARY_DIR}/third_party" )`

我遇到了一个问题: 由于某种原因,此模块不转发在(父)cmake 中使用的编译器以及 CMAKE_BUILD_TYPE。

我尝试使用 CMAKE_CACHE_DEFAULT_ARGS 直接设置 CMAKE_CXX_COMPILER,但没有成功。

对于这种行为有合理的解释吗? 是否有适当的(cmake-ish)方法将当前使用的编译器/构建配置转发到 ExternalProject?

最佳答案

要转发编译器,请使用 ExternalProject 参数 CMAKE_CACHE_ARGS,即:

ExternalProject_Add( googlebenchmark
    ...
    CMAKE_CACHE_ARGS 
       "-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}"
       "-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}"
)

关于cmake - 将当前编译器转发到 ExternalProject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744788/

相关文章:

c++ - 无法使用 Visual Studio 和 CMake 将 __cplusplus 设置为 C++17 标准

c++ - 如何在配置主要项目时构建 cmake ExternalProject?

cmake - 在 CMake 中为每个开发人员自定义安装输出目录的正确方法是什么?

c++ - 为什么不包含这个boost头文件

c++ - 用于从 FORTRAN 代码调用的 C++ 函数调用 C++ 代码的 Cmake 配置文件

c++ - 如何使用 cmake 添加不同的头文件夹,以便项目正确编译和运行

visual-studio-2012 - 使用ExternalProject_Add后缺少项目

cmake - 如何防止 CMake 外部项目在每次制作时更新和重新安装?

cmake - 如何使用 HTTPS URL 请求 GIT_REPOSITORY 的密码