CMake configure_file用1/0替换ON / OFF

时间:2014-12-04 02:11:31

标签: cmake

假设ABC中有两个库XYZABC_FOUND和两个变量XYZ_FOUND CMakeLists.txt。在config.h.in文件中,我有以下几行

#define __USE_ABC__ @ABC_FOUND@
#define __USE_XYZ__ @XYZ_FOUND@

如果我configure_file(config.h.in config.h),则输出config.h文件将更改为

#define __USE_ABC__ ON
#define __USE_XYZ__ OFF

我的问题是如何将ON / OFF选项转换为1 / 0,换句话说,我想要的输出config.h应该是

#define __USE_ABC__ 1
#define __USE_XYZ__ 0

2 个答案:

答案 0 :(得分:2)

使用

ABC_FOUND定义为01
#cmakedefine01 @ABC_FOUND@

在任一环境中使用中间变量将其更改为USE_ABC

答案 1 :(得分:0)

可能,您应该使用#cmakedefine而不是硬定义(请参阅示例,例如here

但请记住,在#cmakedefine的情况下,您会得到一个配置标头,其中“启用的功能”(就CMake if()命令而言)为#define - d为提供的值,而“禁用的功能”是#undef - 。因此,您应该使用#if <something>而不是#ifdef <something>来测试它们。

相关问题