我正在处理一些需要来自不同源代码树的头文件的内容。由于各种原因,我希望将这些头文件放在我的项目之外,并在make过程中引用它们。
我有一个CMake构建脚本,可以生成我的makefile,但是我希望能够生成具有环境变量引用的makefile,以便可以像这样运行生成的makefile:
HEADERS=/somewhere/on/the/filesystem make
使用CMake可以实现吗?如果不行,是否有一种只使用CMake就能实现我想要的方法?
我正在处理一些需要来自不同源代码树的头文件的内容。由于各种原因,我希望将这些头文件放在我的项目之外,并在make过程中引用它们。
我有一个CMake构建脚本,可以生成我的makefile,但是我希望能够生成具有环境变量引用的makefile,以便可以像这样运行生成的makefile:
HEADERS=/somewhere/on/the/filesystem make
使用CMake可以实现吗?如果不行,是否有一种只使用CMake就能实现我想要的方法?
set(${PROJECT_NAME}_PORT "$(TARGET_SERIAL_PORT)")
如果要将环境变量传递给make,您可以:
CMAKE_POLICY(PUSH)
CMAKE_POLICY(SET CMP0005 NEW)
ADD_DEFINITIONS(-DHEADER=$ENV{HEADER})
CMAKE_POLICY(POP)
将HEADER
替换为您的变量名称。
设置cmake策略CMP0005
是为了让cmake为您生成正确的转义。
您可以使用$ENV{VARIABLE}
来获取环境变量的值,但它只会在cmake运行期间进行评估,而不是在make期间。