Есть ли возможность отлаживать 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 Script Debugger, предоставляемый инструментом VisualGDB . Он использует форк CMake с открытым исходным кодом. который поддерживает пошаговое выполнение файлов CMakeLists.txt, установку точек останова кода / данных, оценку / изменение переменных и т. Д.
Там же подробно шаг за шагом учебник о новом отладчике здесь
Есть инструменты стивейра CMake Daemon Tools . Я сам их не использовал, но они утверждают, что предлагают возможности для самоанализа, которые кажутся довольно близкими к отладчику.
Изменить : теперь они называются CMake-server и являются частью CMake 3.7.
Мне нравится использовать variable_watch для «отладки» моих файлов 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