Я увлекаюсь идеей создания некоторых инструментов для анализа кода.Все мои интересные проекты сейчас используют cmake и clang ++.
Для начала мне нужно заполучить CMake AST для определенного проекта.По сути, я хочу сделать следующее (psuedocode):
CMakeAst & project_ast = CMakeAstBuild("/path/to/the/root/directory/of/a/project");
Из AST я извлеку цели, настроенные (по умолчанию) ключи компилятора (, (по умолчанию) # DEFINE, пути включения и т. Д.. Вся эта информация потребуется для libClang для создания точного AST для целей, определенных в моем анализируемом проекте.
Так что libclang - это чистый документированный интерфейс для clang. Теперь мне нужна информация для CMake Couldкто-то направит меня к созданию моей собственной основной программы, производящей CMake AST. Любая информация приветствуется.
C-main и соответствующие ключи компиляции в виде MakeFile сделают мой день: D
Редактировать: My Progress (cmake 2.8.5)
cmakemain.cxx
содержит метод main и устанавливает контекст для основного движка, который выглядит как класс cmake
, которыйсодержится в cmake.h
. cmake.h
с хорошей документацией.
Похоже, что инструменты сборки создают монолитные исполняемые инструменты, промежуточная библиотека не создается. bit messy: /.