В документации CMake можно прочитать:
Добавляет флаги в командную строку компилятора для источников в текущем каталоге и ниже.
Свойство COMPILE_DEFINITIONS в каталогах
COMPILE_DEFINITIONS: определения препроцессора для компиляции источников каталогов.
Свойство COMPILE_DEFINITIONS для целей
COMPILE_DEFINITIONS: определения препроцессора для компиляции целевых источников.
Свойство COMPILE_DEFINITIONS в исходных файлах
ФункциональностьCOMPILE_DEFINITIONS: определения препроцессора для компиляции исходного файла.
COMPILE_DEFINITIONS
и add_definitions
, похоже, перекрывается. COMPILE_DEFINITIONS
свойство кажется более гибким.
Итак, кажется, что свойство COMPILE_DEFINITIONS делает все add_definitions и даже больше.
Итак, в каких случаях мы должны называть add_definitions, поскольку свойство COMPILE_DEFINITIONS не может быть использовано?