在CMake中保留环境变量

3

我正在处理一些需要来自不同源代码树的头文件的内容。由于各种原因,我希望将这些头文件放在我的项目之外,并在make过程中引用它们。

我有一个CMake构建脚本,可以生成我的makefile,但是我希望能够生成具有环境变量引用的makefile,以便可以像这样运行生成的makefile:

HEADERS=/somewhere/on/the/filesystem make

使用CMake可以实现吗?如果不行,是否有一种只使用CMake就能实现我想要的方法?

4个回答

1
这对我来说似乎起作用了:

set(${PROJECT_NAME}_PORT "$(TARGET_SERIAL_PORT)")

这是一个真实的例子,但希望它能给你提供一些想法。您可以将字符串分配给一个变量,该字符串将逐字复制到Makefile中。

1

0

如果要将环境变量传递给make,您可以:

CMAKE_POLICY(PUSH)
CMAKE_POLICY(SET CMP0005 NEW)
ADD_DEFINITIONS(-DHEADER=$ENV{HEADER})
CMAKE_POLICY(POP)

HEADER替换为您的变量名称。

设置cmake策略CMP0005是为了让cmake为您生成正确的转义。


0

您可以使用$ENV{VARIABLE}来获取环境变量的值,但它只会在cmake运行期间进行评估,而不是在make期间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接