我正在使用NetBeans处理现有的CMake项目。
在 CMakeLists.txt 中有
set(DEFINES ${SRC}/defines.cmake)
所以在源头你有
#ifdef MY_OPT
//do stuff
#endif
这些在NetBeans中被删除,因为从来没有
#define MY_OPT
相反,有一个
-DMY_OPT
definitions.cmake 中的。
如何告诉NetBeans查看此文件(以及其他文件)?
答案 0 :(得分:0)
set(DEFINES ${SRC}/defines.cmake)
这条线的目的是什么?如果您的defines.cmake
包含一些预处理器设置,则最好使用include()
:
include("${SRC}/defines.cmake")
这个define.cmake文件是否有可能通过预处理器实际设置定义?
是的,这是add_definitions()有用的地方:
add_definitions(-DMY_OPT -DANOTHER_ONE)
总结一下:
<强>的CMakeLists.txt 强>
# ...
include("${SRC}/defines.cmake")
# ...
<强> defines.cmake 强>
# Add defines
add_definitions(-DMY_OPT)
来源的某处:
#ifdef MY_OPT
/* This is used now */
#else
/* MY_OPT is not defined - shouldn't happen now */
#endif
顺便说一句,你也可以看看configure_file()
。