Извлечь полезный список файлов (с путем) из проекта Visual Studio C ++ - PullRequest
1 голос
/ 05 августа 2010

Я работаю с командой над несколькими проектами visual studio (2008), в которых много кода.Некоторые файлы используются во всех проектах, но некоторые полезны только для 1 или 2. Я ищу способ извлечь все полезные файлы для одного конкретного проекта.

Принцип, который мы используем, - это общий доступ к каталогам.Каждый проект выбирает общие каталоги, которые он хочет использовать, в списке включенных каталогов (в свойствах проекта).Все такие каталоги создаются внутри корневого каталога (напрямую или нет).

 project_dir/  
 shared1_dir/  
 shared2_dir/  
 ...

Учитывая файл проекта, какой это самый эффективный способ скопировать все необходимые файлы, сохраняя общийструктура директории, но в новом корневом каталоге?Целью здесь является создание строгого архива проекта.

Примечание: исходные файлы в общих каталогах обычно являются не файлами cpp, а файлами заголовков (в наших проектах используется много шаблонов).

1 Ответ

1 голос
/ 12 августа 2010

Я написал небольшой инструмент на Python, который делает эту работу.Принцип заключается в том, чтобы запустить команду «rebuild all» в devenv для проекта + решение для архивации и интерпретировать его результаты.

Эта команда применяется к специальной конфигурации (в моем случае «ReleaseInclude»), в которую были внесены несколько тонких изменений (по сравнению с конфигурацией «Release»): * включена опция «showInclude» (опция компилятора)) * включена опция "/ verbose: lib" для библиотек (опция компоновщика)

Теперь, * используя regexp в файлах проекта Visual Studio, я смог получить все файлы cpp и другие файлы ресурсов.* используя regexp на выходе компиляции (не забудьте включить вывод для devenv!), я смог перечислить все файлы включения и библиотеки

Я также отфильтровал этот список файлов, чтобы игнорироватьфайлы, ориентированные на визуальные студии.

Проверено и одобрено.

...