Чи є можливість налагоджувати CMakeLists.txt
файли (принаймні перелік змінних), крім оператора повідомлення ?
Чи є можливість налагоджувати CMakeLists.txt
файли (принаймні перелік змінних), крім оператора повідомлення ?
Відповіді:
Для CMake не існує інтерактивного налагоджувача, проте є також прапори -Wdev
, --debug-output
і --trace
це може допомогти. Також НЕ забудьте перевірити файли журналів CMakeFiles\CMakeOutput.log
і CMakeFiles\CMakeError.log
які в основному збирати виходи процесів , що викликаються CMake (наприклад , при перевірці на наявність типу або заголовка).
Починаючи з версії 3.7 , CMake зараз офіційно підтримує "серверний режим", тому інтеграція в IDE найімовірніше покращиться найближчим часом. Початкова підтримка існує як у Qt Creator, так і в Visual Studio 2017 RC
if
операторів CmakeList.txt
? came --debug ...
і cmake --debug-output ...
не друкують їх. У Bash це еквівалент bash -x <cmd>
.
--trace
як правило, досить великий (перенаправити вихід у файл!)
string(STRIP ...)
була зламана. Також див. Розділ Як усунути кінцевий рядок нового рядка у змінній Cmake? . Прошу вибачення, якщо ви не знали, що bash -x
робить.
Ви можете спробувати використати новий налагоджувач сценаріїв CMake, наданий інструментом VisualGDB . Він використовує форк CMake з відкритим кодом, який підтримує перехід через файли CMakeLists.txt, встановлення точок зупинки коду / даних, оцінку / зміну змінних тощо
Там же докладно крок за кроком підручник про новий отладчике тут
Існують інструменти CMake Daemon Steveire . Я сам ними не користувався, але вони стверджують, що вони пропонують можливості для самоаналізу, які здаються досить близькими до налагоджувача.
Редагувати : Вони тепер називаються CMake-сервером і є частиною CMake 3.7.
Мені подобається використовувати переменну_перегляду для "налагодження" моїх файлів CMakeLists.txt. Просто встановіть зверху мого сценарію:
variable_watch(SOME_MY_VAR)
Також прочитайте про env var VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.html
Я використав це таким чином:
export VERBOSE=defined
make
і отримав ще кілька деталей.
В інших випадках редагуйте CMakeLists.txt
файл, щоб включити такий рядок:
set(CMAKE_VERBOSE_MAKEFILE ON)
(Деякий допис про це https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).
Крім того, є корисні cmake
опції, що керують виведенням налагодження, див. Сторінку: https://cmake.org/cmake/help/latest/manual/cmake.1.html