我正在开发一些需要来自不同源树的头文件的东西。出于各种原因,我想将这些标题保留在我的项目之外,并在制作过程中引用它们。
我有一个生成makefile的CMake构建脚本,但是我希望能够生成带有环境变量引用的makefile,这样生成的makefile就可以这样运行:
HEADERS=/somewhere/on/the/filesystem make
这是否可以使用CMake?如果做不到的话,有没有办法让我在使用CMake之后得到的东西?
答案 0 :(得分:1)
您应该使用TARGET和PRE_LINK选项查看add_custom_command。
答案 1 :(得分:1)
这似乎对我有用:
set(${PROJECT_NAME}_PORT "$(TARGET_SERIAL_PORT)")
这是一个现实世界的例子,但我希望它能给你一个想法。您可以将字符串分配给变量,该变量将逐字复制到Makefile。
答案 2 :(得分:0)
您可以使用$ENV{VARIABLE}
来获取环境变量的值,但只会在cmake运行期间而不是在make期间进行评估。
答案 3 :(得分:0)
要传递环境变量,您可以:
CMAKE_POLICY(PUSH)
CMAKE_POLICY(SET CMP0005 NEW)
ADD_DEFINITIONS(-DHEADER=$ENV{HEADER})
CMAKE_POLICY(POP)
将HEADER
替换为您的变量名。
设置cmake策略CMP0005
是为了让cmake为您生成正确的转义。