C++ CMAKE选项到-DXXX编译器参数

C++ CMAKE选项到-DXXX编译器参数,c++,c,gcc,cmake,C++,C,Gcc,Cmake,我有一个用gcc和cmake2.8+编译的C/C++项目。我知道cmake支持一些选项(XXX“Description…”开/关)标签。我希望这些构建选项以某种方式导致-DXXX编译时参数传递给gcc。如何最优雅地执行此操作?如果您只关心添加-D编译器标志,那么您需要的命令是 您可以将其包装在if()块中,以便使用相关选项()打开: 它不应该是endif(MY_功能)?以前是必需的语法,但现在是可选的。在风格上我不确定什么是首选。保留结束命令为空(就像答案一样)无疑是现代CMake的首选风格。

我有一个用
gcc
cmake2.8+
编译的C/C++项目。我知道
cmake
支持一些
选项(XXX“Description…”开/关)
标签。我希望这些构建选项以某种方式导致
-DXXX
编译时参数传递给
gcc
。如何最优雅地执行此操作?

如果您只关心添加-D编译器标志,那么您需要的命令是

您可以将其包装在if()块中,以便使用相关选项()打开:


它不应该是
endif(MY_功能)
?以前是必需的语法,但现在是可选的。在风格上我不确定什么是首选。保留结束命令为空(就像答案一样)无疑是现代CMake的首选风格。干什么的。
option(MY_FUNCTIONALITY "Cool functionality" ON)

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