Хотя я могу установить разные уровни предупреждений в зависимости от компилятора, например:
if(MSVC)
target_compile_options(${TARGET_NAME} PRIVATE /W4 /WX)
else()
target_compile_options(${TARGET_NAME} PRIVATE -Wall -Wextra -pedantic -Werror)
endif()
Я не могу установить их пофайлово.
В том же каталоге у меня есть набор файлов, имена которых указаны в переменной CMake ${SRC_WARN}
, для которых требуется другой уровень предупреждения по сравнению с другими.
Есть ли способ указать такое условие с помощью target_compile_options
?
1 ответ
Вы можете установить параметры компиляции (COMPILE_OPTIONS
) для один файл (или группа файлов) с использованием set_source_files_properties()
. Вы можете изменить COMPILE_OPTIONS
для исходных файлов ${SRC_WARN}
, добавив к существующему коду CMake:
if(MSVC)
target_compile_options(${TARGET_NAME} PRIVATE /W4 /WX)
# Change these files to have warning level 2.
set_source_files_properties(${SRC_WARN} PROPERTIES COMPILE_OPTIONS /W2)
else()
target_compile_options(${TARGET_NAME} PRIVATE -Wall -Wextra -pedantic -Werror)
# Change these files to inhibit all warnings.
set_source_files_properties(${SRC_WARN} PROPERTIES COMPILE_OPTIONS -w)
endif()
Похожие вопросы
Новые вопросы
cmake
CMake - это кроссплатформенный генератор систем с открытым исходным кодом. Он генерирует файлы для систем сборки, такие как собственные make-файлы, ninja-build и файлы проектов для нескольких интегрированных сред разработки.