CMake 编译标志

Posted

技术标签:

【中文标题】CMake 编译标志【英文标题】:CMake Compilation Flags 【发布时间】:2014-04-02 04:10:20 【问题描述】:

我在我的一个项目中使用 CMake,我想为每个文件使用一组不同的优化标志。有些文件包含我想优化空间的代码,而另一些文件包含我想优化性能的代码。

有没有使用 CMake 来做到这一点?我目前能想象的唯一方法是使用这个:

set_property(SOURCE $PROJECT_SOURCE_DIR/src/bitmap.c APPEND_STRING COMPILE_FLAGS "/Wall /WX /O1")

我知道有一些方法可以为特定文件设置优化标志,但是在发布或调试模式下构建会对此产生影响吗?我想确保我这样做的方式不仅仅是一些 hack,否则我可能会回到 Make。

【问题讨论】:

【参考方案1】:

您可以使用set_source_file_properties 命令。查看all the properties available for source files,您会注意到COMPILE_DEFINITIONS 和COMPILE_FLAGS 属性。

【讨论】:

但是如果你设置了构建类型,你可以使用 CMAKE_BUILD_TYPE 来检查 这是一个重要的警告。应该将 CMAKE_BUILD_TYPE 设置为空字符串,以避免意外添加编译选项。

以上是关于CMake 编译标志的主要内容,如果未能解决你的问题,请参考以下文章

CMake Fortran 编译器相关标志

CMake 编译标志

CMake:配置期间不同的编译器标志?

在 CMake 项目中动态更改编译器标志

使用 cmake 从命令行使用 /MT 标志编译

CMake:隐藏子目标的-WShadow全局编译标志