CMake + ccache:RULE_LAUNCH_COMPILE 或 CMAKE_<LANG>_COMPILER_LAUNCHER

lad*_*las 8 c c++ cmake

当将 ccache 与 CMake 一起使用时,似乎有两种方法来设置项目。

第一个是与RULE_LAUNCH_COMPILE

find_program(CCACHE "ccache")
if(CCACHE)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE}")
endif()
Run Code Online (Sandbox Code Playgroud)

第二个是CMAKE_<LANG>_COMPILER_LAUNCHER

find_program(CCACHE "ccache")
if(CCACHE)
    set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE})
    set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE})
endif(CCACHE)
Run Code Online (Sandbox Code Playgroud)

哪一种被认为是最佳实践?:)

感谢您的帮助。

Fre*_*red 7

第一个将使用构建中所有语言的启动器。第二个将使用相同的启动器CCXX但不适用于其他语言。这两种方法略有不同,因为第二种方法允许针对不同语言使用不同的启动器。第二种方法可以进行更精细的控制,因此可能是首选方法。还有环境变量以及目录和目标属性,用于控制哪些项目使用启动器。

https://crascit.com/2016/04/09/using-ccache-with-cmake/