Наша команда была назначена для обзора и преломления большого и сложного продукта. В текущем репо много неиспользуемых файлов. Нам нужно выяснить, какие файлы используются, а какие нет.
Есть ли простой способ получить все файлы источников и заголовков, которые используются системой сборки (make) для компиляции продукта?
Если вы ссылаетесь на источники файлов.C и.CPP, вы должны убедиться, что ваша система сборки создает файлы карт. Вы можете проанализировать файлы карт с регулярным выражением, чтобы найти все файлы.o. Это дает вам имя всех исходных файлов.
Файлы заголовков можно найти с помощью grep для строк #include.
Редактировать:
GCC может выводить зависимости с -M
или -MM
Вы можете проанализировать эти файлы. Если ваш make файл вызывает GCC, вы можете изменить CFLAGS для создания этих файлов. Если другие компиляторы предоставляют эти функции, зависит от компилятора.
Попробуйте добавить параметры генерации зависимостей в компилятор. G++ имеет набор опций -M *, которые позволяют создавать зависимости каждого файла в формате Makefile. Я не использовал его много, поэтому я не буду говорить вам точно, что вы должны делать, но, возможно, -MP
может выглядеть многообещающе для вашей проблемы...
Просто сохраните эти файлы зависимостей с помощью какого-нибудь причудливого расширения, такого как.ddd, а затем напишите скрипт, чтобы скопировать их где-нибудь.
find . -name "*.c"
*.c
, которого там быть не должно.