我可以设置默认的CMake缓存变量以应用于所有项目吗?

时间:2016-11-25 00:12:04

标签: cmake

我需要向CMake提供几个设置,这些设置在每个项目中都是相同的。每次我吹走构建区域并重新开始时,必须在命令行上指定这些内容会很烦人。

例如: cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=${HOME}/local

有没有办法为CMAKE_BUILD_TYPECMAKE_INSTALL_PREFIX这样的常见设置提供值,以便它们默认应用于所有项目?

2 个答案:

答案 0 :(得分:2)

您可以创建“初始缓存”脚本

<强>〜/ default.cmake

set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type")
set(CMAKE_INSTALL_PREFIX $ENV{HOME}/local CACHE PATH "Installation prefix")

并将其传递给cmake,与-C选项一样:

cmake -C ~/default.cmake ..

有关cmake(1) documentation-C选项的更多信息。

至于使用默认的这些设置(也就是说,没有任何cmake的附加选项),我不知道这样做的明确方法。

您可以创建包含default-cmake的包装脚本,该脚本使用原始附加参数调用cmake

答案 1 :(得分:0)

另一种方法是创建一个完全包含这两个变量的初始CMakeCache.txt文件:

$ cat CMakeCache.txt
CMAKE_BUILD_TYPE:STRING=Debug
CMAKE_INSTALL_PREFIX:PATH=~/local

在下一次cmake运行时,CMakeCache.txt将包含剩余的cmake运行。您不需要将任何其他标志传递给cmake,但它会划伤您的初始CMakeCache.txt(因此您需要将其添加到.gitignore)。