Как проверить, является ли тип сборки каталога сборки 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 в директории сборки. Просто из любопытства, что ты пытаешься сделать?