COMPILE_DEFINITIONS
Препроцессорные определения для компиляции исходных кодов каталога.
Это свойство определяет список опций, переданных до сих пор команде add_definitions().
Свойство COMPILE_DEFINITIONS может быть установлено в список препроцессорных определений, разделённых точкой с запятой, используя синтаксис VAR или VAR=value. Определения в стиле функций не поддерживаются. CMake автоматически корректно экранирует значение для системной сборки (обратите внимание, что синтаксис CMake может потребовать экранирования для указания некоторых значений).
Это свойство будет инициализировано в каждом каталоге его значением из родительского каталога.
CMake автоматически удалит некоторые определения, которые не поддерживаются системным инструментом сборки.
Оговорка: большинство системных инструментов сборки плохо поддерживают экранирование некоторых значений. 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–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.8/prop_dir/COMPILE_DEFINITIONS.html