在模板文件中扩展变量,#cmakedefine和生成器表达式

时间:2019-02-19 17:03:26

标签: cmake

我有以下模板

config.c.in

#define QPID_DISPATCH_VERSION "${QPID_DISPATCH_VERSION}"
#define QPID_DISPATCH_LIB "$<TARGET_FILE_NAME:qpid-dispatch>"
#cmakedefine01 USE_MEMORY_POOL

我希望通过扩展变量,#cmakedefine和生成器表达式来获得以下内容。

config.c

#define QPID_DISPATCH_VERSION "1.6.0-SNAPSHOT"
#define QPID_DISPATCH_LIB "libqpid-dispatch.so"
#define USE_MEMORY_POOL 1

问题是,似乎没有可以扩展这三个功能的CMake函数。

我能做的是

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h.tmp)
file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/config.h INPUT ${CMAKE_CURRENT_BINARY_DIR}/config.h.tmp)

是否有一种无需创建临时文件即可完成此操作的方法?清理文件非常棘手,因为文件GENERATE不会立即运行。

1 个答案:

答案 0 :(得分:1)

根据@Tsyvarev的评论,我现在有了

A