是否有一些系统变量在CMakeLists.txt设置所有构建临时文件到指定的目录(CMakeCache, CMakeFiles,构建工件等)?这可以使用命令行参数-B (path-to-build)来完成,但我需要在CMakeLists.txt中设置所有文件的默认目录,这些文件没有被git
跟踪如果您通过命令行指定构建目录,它总是覆盖来自其他来源的任何值。
你可以使用cmake预设来实现类似的效果,但这是一个相对较新的cmake功能(= 3.19版本),它没有在CMakeLists.txt
文件中指定构建目录,而是在CMakePresets.json
文件中。
对于旧的cmake版本,该文件的存在不会破坏项目,但是初始配置变得不那么方便。
CMakePresets.json(放置在顶层CMakeLists.txt
旁边)
{
"version": 1,
"cmakeMinimumRequired": {
"major": 3,
"minor": 19,
"patch": 0
},
"configurePresets": [
{
"name": "makefiles",
"displayName": "Default configuration",
"description": "Default config",
"generator": "Unix Makefiles",
"binaryDir": "../build"
}
]
}
这允许您使用
选择默认构建位置作为源目录的兄弟目录。cmake --preset makefiles .
使用源目录的兄弟目录build
作为二进制目录。
您可以使用CMake预设。你使用binaryDir
属性,再也不需要提供-B
参数,只要你使用预设来生成项目文件和/或构建项目。