有没有一种方法可以全局设置cmake属性?

时间:2019-12-08 20:21:39

标签: cmake

假设我建立了多个基于cmake的项目。我想使用始终定义的全局属性来构建它们。

例如,假设我想始终使用sccache进行构建。为此,对于每个项目,我需要这样做:

cmake <dir> -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache

我最终写了很多,所以避免它很有用。我知道我可以为C编译器创建一个包装,该包装将调用sccache,并且:

export CC=/path/to/sccache/gcc

(例如)。

类似地,我可以在cmake之上编写一个包装器或shell别名,它称为cmake -D...

但是我希望能够做类似的事情:

export CMAKE_CXX_COMPILER_LAUNCHER=sccache
export CMAKE_C_COMPILER_LAUNCHER=sccache

似乎没有办法做到这一点。有一个吗?我一般不希望在全局范围内更改CCCXX,因为它们可能会导致其他构建系统出现问题或导致其他问题。

1 个答案:

答案 0 :(得分:1)

我想知道专用的工具链脚本是否可以满足您的需求。

浏览其文档here

然后,每次要使用该预设变量时,都必须定义-DCMAKE_TOOLCHAIN_FILE=<toolchain_script>