CMake получает зависимые заголовочные файлы, такие как g cc -M - PullRequest
2 голосов
/ 23 апреля 2020

Я анализирую проект CMake и хочу получить все заголовочные файлы, от которых зависит исходный файл. Есть ли такой инструмент или команда, как gcc -M или g++ -M, чтобы перечислить все зависимости одного файла в проекте CMake? Было бы лучше, если бы я мог также определить, к какой цели относится каждый заголовочный файл.

Конечно, я не могу использовать g++ -M напрямую, потому что не могу найти некоторые зависимости, организованные CMakeLists.txt.

Поскольку команда cmake будет генерировать MakeFile, инструмент или команда для Make также могут работать для меня.

1 Ответ

2 голосов
/ 23 апреля 2020

Проверьте папку сборки для вашего проекта CMake. Для каждой цели CMake должен сгенерировать файл с именем C.includecache. Этот файл содержит информацию о зависимостях включения.

Если, например, у вас есть файл main.c, который включает заголовки stdio.h и math.h. Файл C.includecache будет содержать следующую запись:

/path/to/main.c
stdio.h
-
math.h
-
...