配置完成后添加调试标志

时间:2013-09-26 12:48:55

标签: cmake

我们目前正在将一个大型项目从GNU autotools移植到CMake。我们的用户非常感兴趣的一个开放性问题(科学计算:用户是开发人员)是切换到调试编译器标志而不重新配置整个项目。

当然有一种解决方法可以添加一些像

这样的东西
set_property(TARGET <target> PROPERTY COMPILE_FLAGS <debugflags>)

到CMakeLists.txt并运行

make target

并依靠cmakes缓存功能来配置特定的

但对于习惯于自动化的用户来说

make CXXFLAGS="<debugflags>" <target>

这不是令人信服的方式。

同样适用于拥有2个内置目录,一个有一个目录,另一个没有调试标志。

我已经寻找更多的可能性来模仿这种行为而没有成功。你知道任何?或者您知道是否为未来的cmake版本计划了这些功能吗?

1 个答案:

答案 0 :(得分:1)

  

“问题”是你必须修改你的CmakeLists文件和   之后撤消该更改

您无需为此更改CMakeLists文件。 CMake允许在基于make的生成器的命令行上使用specifying a build type

cmake -DCMAKE_BUILD_TYPE=Debug [...] && make

这已经为您添加了-g编译标志。如果您需要其他项目特定标志,可以根据构建类型有条件地添加它们。

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    # do your stuff
endif()

请注意,一旦指定了构建类型,CMake将继续对所有后续运行使用相同的构建类型,除非您通过命令行显式设置不同的构建类型或删除缓存。