如何设置变量未设置时使用的CMake的C / C ++编译器命令?

时间:2017-04-22 16:08:59

标签: cmake

CMake可以使用CMAKE_C_COMPILER / CMAKE_CXX_COMPILER, 但是在较新版本的CMake中,请不要在CMakeCache.txt

中设置这些变量

在没有设置变量的情况下 - 有没有办法访问CMake用于调用项目编译器的C / C ++命令?

我的意思是CMake用来调用编译器的C / C ++路径。

问,因为我写了一个工具来扫描make dry-run的输出,它需要知道用于编译源文件的编译器命令。

1 个答案:

答案 0 :(得分:0)

有很多方法(1)(2),你甚至可以想到不扫描,而是直接输出你需要的任何东西,例如:文件(3)。

  1. 将变量传输到缓存

    set(CMAKE_CXX_COMPILER "${CMAKE_CXX_COMPILER}" CACHE INTERNAL "")
    
  2. 不要查看CMakeCache.txt,而是查看存储编译器识别结果的文件:

    CMakeFilse/${CMAKE_VERSION}/CMakeCXXCompiler.cmake
    
  3. 将其输出到stdout或文件:

    message(STATUS "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}")
    
    file(WRITE "CMAKE_CXX_COMPILER.txt" "${CMAKE_CXX_COMPILER}")