2012-01-03 156 views
2

我有一个C/C++项目编译gcc和使用cmake 2.8+。我知道cmake支持一些OPTION(XXX "Description..." ON/OFF)标签。我希望这些编译选项的结果以某种方式在-DXXX编译时间参数传递给gcc。如何做到最优雅?CMAKE选项-DXXX编译器参数

回答

5

如果你只在乎添加-D编译器选项,那么你需要的命令是

add_definitions()

你可以包装在一个IF()块导通与相关选项():

option(MY_FUNCTIONALITY "Cool functionality" ON) 

if(MY_FUNCTIONALITY) 
    add_definitions(-DENABLE_MY_FUNCTIONALITY) 
endif() 
+0

不应该是'endif(MY_FUNCTIONALITY)'? – 2012-01-03 16:03:01

+0

曾经是必需的语法,但它现在是一个可选的东西。在风格上,我不确定什么是首选。 – alanxz 2012-01-03 16:23:14

+0

将闭合命令留空(类似于答案)当然是现代CMake中的首选样式。干和所有这一切。 – Angew 2015-01-30 14:25:12