Spec-Zone.ru › CMake

COMPILE_DEFINITIONS

Определения препроцессора для компиляции исходных файлов цели.

Свойству COMPILE_DEFINITIONS можно присвоить список определений препроцессора, разделённых точками с запятой, используя синтаксис VAR или VAR=value. Определения в виде функций не поддерживаются. CMake автоматически экранирует значение в соответствии с требованиями собственной системы сборки (обратите внимание: для указания некоторых значений может потребоваться экранирование в синтаксисе языка CMake).

CMake автоматически удалит некоторые определения, которые не поддерживаются собственным инструментом сборки.

Добавлено в версии 3.26: Любой начальный -D в элементе будет удалён.

Отказ от ответственности: большинство собственных инструментов сборки плохо поддерживают экранирование определённых значений. В CMake предусмотрены обходные решения для многих случаев, но некоторые значения может быть невозможно передать корректно. Если экранирование значения кажется некорректным, не пытайтесь обойти проблему, добавляя в значение последовательности экранирования. Обходное решение может перестать работать в будущей версии CMake с улучшенной поддержкой экранирования. Вместо этого рассмотрите возможность определения макроса в (сконфигурированном) заголовочном файле. Затем сообщите об этом ограничении. К известным ограничениям относятся:

#

Почти везде работает некорректно.

;

Некорректно работает в VS IDE 7.0 и Borland Makefiles.

,

Некорректно работает в VS IDE.

%

В некоторых случаях некорректно работает в NMake.

& |

В некоторых случаях некорректно работает в MinGW.

^ < > \ "

Некорректно работает в большинстве инструментов Make в Windows.

CMake не отклоняет такие значения, поскольку в некоторых случаях они работают. Используйте их с осторожностью.

Содержимое COMPILE_DEFINITIONS может включать «генераторные выражения» с синтаксисом $<...>. Список доступных выражений см. в руководстве cmake-generator-expressions(7). Дополнительные сведения об определении свойств системы сборки см. в руководстве cmake-buildsystem(7).

Соответствующему свойству COMPILE_DEFINITIONS_<CONFIG> можно присвоить определения для отдельных конфигураций. Вместо установки альтернативного свойства рекомендуется использовать генераторные выражения.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_tgt/COMPILE_DEFINITIONS.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API