2016-03-08 2 views
0

Я работаю над приложением Qt, используя cmake с automoc, чтобы иметь дело с генерацией классов объектов Qt.Добавить свойства файлов в файл cpp, созданный automoc с cmake

Мой сгенерированный файл file_automoc.cpp компилируется с предупреждениями. Сами предупреждения взяты из файла заголовка, включенного в cpp-файл, но этот заголовочный файл является частью третьей стороны, которую я не могу изменить.

Я хотел бы передать флаги компиляции, чтобы подавить эти конкретные предупреждения только для этого файла.

Проблема в том, что я не могу использовать set_source_files_properties в сгенерированном файле, потому что cmake жалуется, что файл не существует.

Как использовать cmake для передачи флагов компиляции в сгенерированный файл до его фактического существования в файловой системе?

ответ

1

Включая lib с SYSTEM, компилятор подавляет предупреждения для этой библиотеки.

От https://cmake.org/cmake/help/v3.0/command/include_directories.html:

Если параметр SYSTEM задан, то компилятор будет рассказана каталоги подразумеваются системы включают в себя каталоги на некоторых платформах. Сигнализация этого параметра может привести к таким эффектам, как предупреждения о пропуске компилятора или эти системные файлы с фиксированной установкой, которые не рассматриваются в расчетах зависимостей - см. В документах компилятора.

Это изменение:

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

подавил эти предупреждения.

Смежные вопросы