Игнорировать/показывать только ошибки/предупреждения из определенного каталога с помощью CMake
Основной вопрос: Есть ли конфигурация cmake для отображения или игнорирования предупреждений/ошибок компилятора только из определенного каталога?
альтернативное решение: Как я могу переключить это в QtCreator?
фон/мотивация:
Я работаю над большим проектом CMake и хочу сосредоточиться на предупреждениях и ошибках только из моего подпроекта. Я работаю с QtCreator, и это раздражает меня искать "мои" ошибки/предупреждения под кучей иностранных.
Ответы
Ответ 1
Вы можете установить параметры предупреждения компилятора в CMake как минимум для определенных целевых или определенных файлов.
# For target
set_target_properties(your_project_name PROPERTIES COMPILE_FLAGS "...")
# For files
set_source_files_properties(
${list_of_your_files}
PROPERTIES
COMPILE_FLAGS "..."
)
Также можно установить параметры для каждой папки, разделив ваш проект как подпроект, добавив его с помощью add_subdirectory(your_project)
, а в вашем проекте CMakeLists.txt используйте add_definitions(...)
.
Из документации CMake:
add_definitions Добавляет флаги в командную строку компилятора для источников в текущем каталоге и ниже.
Ответ 2
В основном так же, как ответ @ronkot. Но не нужно add_subdirectory
для определенного каталога, использование set_source_files_properties
с file(GLOB_RECURSE...)
также работает.
file(GLOB_RECURSE SRC_DIR "SRC_DIR/*.c" "SRC_DIR/*.h")
set_source_files_properties(
${SRC_DIR}
PROPERTIES
COMPILE_FLAGS "-w"
)