cmake3 - как обрабатывать CMakeLists.txt, включать команды и просматривать результат - PullRequest
1 голос
/ 05 июня 2019

Как можно просмотреть файл CMakeLists.txt с помощью выполненных команд включения и встроенного кода на месте?

Пример. Представьте себе файл CMakeLists.txt с несколькими включениями, например:

include(version)
include(options)
include(programs)
include(settings)
include(stuff)
// etc..

Можно ли сгенерировать и просмотреть собранный результат после обработки всех включений в CMakeLists.txt?Ты: ^)

1 Ответ

4 голосов
/ 05 июня 2019

Самый простой способ - использовать --trace или --trace-expand флаги.Оба они заставляют cmake печатать каждую строку, которую он выполняет, в stderr.Для --trace он печатает строки по мере их чтения 1 , для --trace-expand все переменные раскрываются первыми.

Я обычно заканчиваю вызовом перенаправления stderr в cmake.log файл:

cmake . --trace-expand 2> cmake.log

Если вывод слишком длинный 2 для ваших нужд, вы можете попытаться уменьшить его с помощью --trace-source=<file>.Выписка из --help: Trace only this CMake file/module. Multiple options allowed.

1 Кавычки "" иногда теряются.

2 Это действительно долго ..Первый проход по почти пустому проекту дает 14k + строк журнала.Последовательные звонки только 500+.В CMake Guts происходит много всего.

...