将当前编译器转发到ExternalProject

MPo*_*oda 2 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" )`
Run Code Online (Sandbox Code Playgroud)

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

我尝试使用 CMAKE_CACHE_DEFAULT_ARGS 直接设置 CMAKE_CXX_COMPILER,但它并没有安静地解决。

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

sak*_*kra 6

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

ExternalProject_Add( googlebenchmark
    ...
    CMAKE_CACHE_ARGS 
       "-DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER}"
       "-DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER}"
)
Run Code Online (Sandbox Code Playgroud)