将当前编译器转发到ExternalProject

时间:2015-09-23 16:26:44

标签: 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?

1 个答案:

答案 0 :(得分:3)

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

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