cmake add_definitions и COMPILE_DEFINITIONS, как их увидеть - PullRequest
17 голосов
/ 23 марта 2011

Я хочу посмотреть, какой текущий набор определений компилятора находится в моем файле CMake.Те, которые указаны автоматически, и те, которые я добавил, будут великолепны.Макрос COMPILE_DEFINITIONS, по-видимому, не содержит - несмотря на то, что сказано в документации.

Например, в приведенной ниже настройке сообщение никогда не включает GUI_BUILD

add_definitions( -DGUI_BUILD )
message( "COMPILE_DEFINITIONS = ${COMPILE_DEFINITIONS}" )

НадеюсьМне не нужно видеть их в окончательном виде, я просто хочу быстрый вывод, чтобы убедиться, что все настроено правильно.

1 Ответ

22 голосов
/ 23 марта 2011

Вы хотите извлечь свойство COMPILE_DEFINITIONS из каталога .Например, используйте следующее:

add_definitions( -DDebug )
get_directory_property( DirDefs DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS )

Затем вы можете просто перебрать их, например:

foreach( d ${DirDefs} )
    message( STATUS "Found Define: " ${d} )
endforeach()
message( STATUS "DirDefs: " ${DirDefs} )

Обратите внимание, что определения также могут быть связаны с цели или исходные файлы вместо каталогов.И обратите внимание, что они могут различаться в разных конфигурациях.В зависимости от ваших требований может потребоваться проверка большого набора различных свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...