Как проверить, является ли тип сборки каталога сборки CMake Debug или Release?

Я знаю, что тип сборки может быть установлен с помощью -DCMAKE_BUILD_TYPE=Release или же -DCMAKE_BUILD_TYPE=Debug но есть ли способ командной строки проверить / подтвердить, какой тип сборки используется CMake?

2 ответа

Решение

Кроме того, глядя в CMakeCache.txt Вы можете - в каталоге сборки - использовать

cmake -L . | grep CMAKE_BUILD_TYPE
...
CMAKE_BUILD_TYPE:STRING=Release

или вы можете, например, добавить настроенную цель к вашему CMakeLists.txt для этого

add_custom_target(print_build_type COMMAND ${CMAKE_COMMAND} -E echo ${CMAKE_BUILD_TYPE})

будет вызываться с чем-то вроде

$ make --silent print_build_type
Release

Но CMAKE_BUILD_TYPE может быть пустым.

Итак, вот более общая версия с использованием выражений генератора:

add_custom_target(
    print_build_type 
    COMMAND ${CMAKE_COMMAND} -E echo $<$<CONFIG:>:Undefined>$<$<NOT:$<CONFIG:>>:$<CONFIG>>
)

Рекомендации

Вы можете получить значение из файла CMakeCache.txt в директории сборки. Просто из любопытства, что ты пытаешься сделать?

Другие вопросы по тегам