BelBES
@BelBES

Как получить пути к инклюдам из cmake файла?

Всем привет!

Возникла у меня такая задачка: есть абстрактный проект на C++, он использует систему автоматической сборки CMake. При этом он может состоять из нескольких cmake-файлов, внутри каждого CMakeFiles.txt могут быть несколько вызовов find_package и несколько переменных хранящих пути до инклюдов. Задача состоит в том, чтобы для такого произвольного проекта получить пути до всех инклюдов и библиотек, которые используются внутри проекта. Грепание по папке, которую генерит cmake результатов не дало, изучение кодов cmake'плагина для QTCreator'а тоже. Может кто-то знает, как получить такую штуку? Заранее спасибо.
  • Вопрос задан
  • 2825 просмотров
Пригласить эксперта
Ответы на вопрос 2
AxisPod
@AxisPod
Область видимости у CMake довольно интересна и области видимости создаются по папкам/функциям, макросы подставляются в код и область видимости будет взята по месту подстановки. Все переменные созданы в более высокой папке будут видны во вложенных. Вы можете создать свою переменную куда поместить все инклуды и дальше их использовать. Если же вам надо менять в ребенке, можно использовать работу со списком, хотя не уверен, что правильно отразится, а так же модификатор PARENT_SCOPE. Можно конечно еще использовать модификатор CACHE, но тогда его можно будет поменять из командной строки.

www.cmake.org/cmake/help/v3.0/command/set.html
Ответ написан
Как вариант в блок поиска библиотеки вставлять вывод путя на консоль с меткой, по которой будешь искать,

message(STATUS "LibPath: " ${LIBXML2_INCLUDE_DIRS})

Ну а дальше парсим вывод cmake'а на поиск этих строк.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы