使用cmake将文件属性添加到automoc生成的cpp文件中

时间:2016-03-08 15:20:50

标签: qt cmake

我正在开发一个Qt应用程序,使用cmakeautomoc来处理生成Qt对象类。

我生成的文件file_automoc.cpp会编译警告。警告本身来自cpp文件中包含的头文件,但此头文件是我无法修改的第三方库的一部分。

我想传递编译标志,以便仅针对此文件禁止这些特定警告。

问题是我无法在生成的文件上使用set_source_files_properties,因为cmake会抱怨该文件不存在。

如何在文件系统实际存在之前使用cmake将编译标志传递给生成的文件?

1 个答案:

答案 0 :(得分:1)

包含带SYSTEM的lib会使编译器禁止对此lib发出警告。

来自https://cmake.org/cmake/help/v3.0/command/include_directories.html

  

如果给出了SYSTEM选项,编译器将被告知某些平台上的目录是系统包含目录。发出此设置信号可能会产生一些影响,例如编译器跳过警告,或者这些固定安装系统文件未在依赖项计算中考虑 - 请参阅编译器文档。

此更改:

-INCLUDE_DIRECTORIES("/usr/include/thelib")
+INCLUDE_DIRECTORIES(SYSTEM "/usr/include/thelib")

禁止这些警告。