COMPILE_DEFINITIONS
Предварительно заданные определения для компиляции исходных кодов каталога.
Это свойство задаёт список опций, переданных команде add_compile_definitions() (или add_definitions()).
Свойство COMPILE_DEFINITIONS может быть установлено в список предварительно заданных определений, разделённых точкой с запятой, используя синтаксис VAR или VAR=value. Определения в стиле функций не поддерживаются. CMake автоматически правильно экранирует значение для системного билда (обратите внимание, что синтаксис CMake может потребовать экранирования для задания некоторых значений).
Это свойство инициализируется в каждом каталоге значением из родительского каталога.
CMake автоматически удаляет некоторые определения, которые не поддерживаются системным инструментом билда.
Добавлен в версии 3.26: Любой ведущий -D в элементе будет удалён.
Оговорка: большинство системных инструментов билда плохо поддерживают экранирование некоторых значений. CMake имеет обходные пути для многих случаев, но некоторые значения могут просто не передаваться корректно. Если значение кажется некорректно экранированным, не пытайтесь обойти проблему, добавляя последовательности экранирования к значению. Ваш обходной путь может сломаться в будущей версии CMake, которая улучшила поддержку экранирования. Вместо этого рассмотрите возможность определения макроса в (конфигурируемом) файле заголовков. Затем сообщите об ограничении. Известные ограничения включают:
# - broken almost everywhere ; - broken in VS IDE 7.0 and Borland Makefiles , - broken in VS IDE % - broken in some cases in NMake & | - broken in some cases on MinGW ^ < > \" - broken in most Make tools on Windows
CMake не отклоняет эти значения сразу, потому что они работают в некоторых случаях. Используйте с осторожностью.
Содержимое COMPILE_DEFINITIONS может использовать "генераторные выражения" со синтаксисом $<...>. См. руководство cmake-generator-expressions(7) для доступных выражений. См. руководство cmake-buildsystem(7) для получения более подробной информации о определении свойств системы билда.
Соответствующее свойство COMPILE_DEFINITIONS_<CONFIG> может быть установлено для задания определений по конфигурациям. Вместо установки альтернативного свойства рекомендуется использовать генераторные выражения.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/prop_dir/COMPILE_DEFINITIONS.html