add_compile_options
Добавляет параметры компиляции исходных файлов.
add_compile_options(<option> ...)
Добавляет параметры в свойство каталога COMPILE_OPTIONS. Эти параметры используются при компиляции целей из текущего каталога и его подкаталогов.
Примечание
Эти параметры не используются при компоновке. Для этого см. команду add_link_options().
Аргументы
Аргументы команды add_compile_options могут использовать генераторные выражения с синтаксисом $<...>. Список доступных выражений см. в руководстве cmake-generator-expressions(7). Подробнее об определении свойств системы сборки см. в руководстве cmake-buildsystem(7).
Удаление дубликатов параметров
Итоговый набор параметров для цели формируется путем накопления параметров текущей цели и требований к использованию ее зависимостей. Чтобы избежать повторений, из набора параметров удаляются дубликаты.
Добавлено в версии 3.12: Хотя для отдельных параметров удаление дубликатов полезно, этот этап может разбивать группы параметров. Например, -option A -option B превращается в -option A B. Группу параметров можно задать с помощью кавычек в стиле оболочки и префикса SHELL:. Префикс SHELL: удаляется, а оставшаяся строка параметров разбирается в режиме UNIX_COMMAND команды separate_arguments(). Например, "SHELL:-option A" "SHELL:-option B" превращается в -option A -option B.
Пример
Поскольку разные компиляторы поддерживают разные параметры, эту команду обычно используют в условной конструкции, зависящей от компилятора:
if (MSVC)
# warning level 4
add_compile_options(/W4)
else()
# additional warnings
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
Чтобы задавать параметры для отдельных языков, используйте генераторные выражения $<COMPILE_LANGUAGE> или $<COMPILE_LANGUAGE:languages>.
См. также
- Эту команду можно использовать для добавления любых параметров. Однако для добавления определений препроцессора и каталогов включаемых файлов рекомендуется использовать более специализированные команды
add_compile_definitions()иinclude_directories(). - Команда
target_compile_options()добавляет параметры для конкретной цели. - Эта команда добавляет параметры компиляции для всех языков. Чтобы задать параметры компиляции для отдельных языков, используйте генераторное выражение
COMPILE_LANGUAGE. - Свойство исходного файла
COMPILE_OPTIONSдобавляет параметры для одного исходного файла. -
add_link_options()добавляет параметры для компоновки. -
CMAKE_<LANG>_FLAGSиCMAKE_<LANG>_FLAGS_<CONFIG>добавляют флаги для всего языка, передаваемые при каждом вызове компилятора. Сюда входят вызовы, выполняющие компиляцию, и вызовы, выполняющие компоновку.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/add_compile_options.html