使用CMAKE使用不同的标志编译相同的文件

时间:2011-10-21 00:52:58

标签: g++ cmake

我想将相同的.cpp源文件编译成两个不同的目标可执行文件,我正在使用cmake。一个将有一些仪器代码而另一个不会。这样我就可以比较仪器的开销。

我用#ifdefs分隔了检测代码,所以我想用-D标志定义一个值。

我认为这是可能的
add_definitions(-DINSTRUMENT)

但看起来这适用于该目录中创建的所有可执行文件。我想知道是否有一种很好的方法只为特定的可执行目标设置定义。

1 个答案:

答案 0 :(得分:21)

您可以将其中一个目标的COMPILE_DEFINITIONS属性设置为具有特定目标的定义:

set_target_properties (instrumented_target PROPERTIES COMPILE_DEFINITIONS "INSTRUMENT")

<强>更新

从CMake 2.8.11开始,您也可以将target_compile_definitions用于相同目的。