考虑人们在同一代码库上一起工作的情况; C++ 与 CMake。代码库依赖于一个库,必须单独安装。
每个用户的图书馆可能位于不同的位置。用户可以像这样调用 CMake:
cmake -DCMAKE_PREFIX_PATH=/path/for/that/user .
但是,这并不是在所有情况下都很容易(例如 Windows 和 Visual Studio),并且需要重新输入。所以,我们有
list(APPEND CMAKE_PREFIX_PATH "/path/for/user")
在CMakeLists.txt中。这是可行的,但需要人们在拉出分支后不断改变路径,这很烦人并且很容易忘记。一旦在特定机器上设置,是否可以配置拉动新分支不会覆盖此路径?
他们已经可以通过在 --prefix
命令调用中使用
cmake install
来覆盖您在 CMakeLists.txt 中硬编码的任何内容。
您还可以让每个用户创建自己的 CMakeUserPresets.json 文件,并将其设置在
cacheVariables
条目的 configurePresets
字段中。 但是实际上有一个专门的成员用于将预设配置到特定的安装目录:installDir
,所以在这种情况下,他们最好只使用它。
确保将
CMakeUserPresets.json
放入 .gitignore 文件中(或者您必须为特定 VCS 执行的其他操作,以便 VCS 中不会跟踪用户预设文件)。