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