从4.6.1版本开始,ccache支持使用msvc进行编译。
在我的Windows环境中,我已经安装了ccache,并可以通过命令行使用。我尝试以以下方式将ccache集成到我的cmake项目中:
根CMakeLists.txt文件:
find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
message("CCACHE is found")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) # Less useful to do it for linking, see edit2
else(CCACHE_FOUND)
message("CCACHE is NOT found")
endif(CCACHE_FOUND)
这是我的CMake配置文件CMakePresets.json:
{
"name": ",
"hidden": false,
"generator": "Visual Studio 17 2022",
"toolset": {
"value": "host=x64",
"strategy": "external"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
"CMAKE_TOOLCHAIN_FILE": {
value": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"type": "FILEPATH"
},
"VCPKG_INSTALLED_DIR": "${sourceDir}/build/packages",
"VCPKG_TARGET_TRIPLET": "x64-windows-static-md"
},
"vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "hostOS": [ "Windows" ] } }
}
在运行构建时,我可以看到 ccache 被找到了,但我没有看到任何迹象表明它正在工作或被构建系统调用。
运行 ccache -s
显示每个统计数据都是0,就像 ccache 从未被调用一样。
问题:
- 如何正确地配置 MSVC 和 CMake 中的 ccache?
- 如何确保 ccache 正在工作并且构建系统正在使用正确的命令?是否有“详细”选项可提供给 CMake / ccache 以进行调试?