Я ищу информацию о синтаксисе для нового файла Visual Studio 2010 .vcxproj.filters. Есть ли способ выполнить фильтрацию по шаблону, основываясь не только на расширении?
Вот сценарий:
У нас есть инструмент, который записывает файл проекта для Visual Studio 2005, определяя все сообщения в приложении, а также связанные с ними сгенерированные классы. В файле проекта мы сгруппировали файлы C ++ не только по h / cpp, но и по пользовательским фильтрам, поэтому наш проект может выглядеть примерно так:
- сообщений
( <-- that's the .vcproj file)
- GENERATED_MSGS
- COM
- ч
- COMRequest.h
- COMRequestAck.h
- CPP
- COMRequest.cpp
- COMRequestAck.cpp
- DATA
- ч
- DATARequest.h
- DATARequestAck.h
- CPP
- DATARequest.cpp
- DATARequestAck.cpp
- ЗАКАЗАТЬ
- Заголовочные файлы
- HandCraftedMessage1.h
- HandCraftedMessage2.h
- Исходные файлы
- HandCraftedMessage1.cpp
- HandCraftedMessage2.cpp
- MyFileThatDefinesTheMessages.xml
Фильтры (COM, DATA, ORDER и т. Д.) Хранятся в файле .vcproj:
...
<Files>
<Filter Name="GENERATED_MSGS">
<Filter Name="COM">
<Filter Name="COM">
<Filter Name="h">
<File RelativePath=".\COMRequest.h"/>
...
В Visual Studio 2010 файлы, определенные для проекта, находятся в файле .vcxproj, но фильтры их отображения хранятся в файле .vcxproj.filters. Поскольку наши фильтры всегда определяются по первой части имени класса, я надеялся избежать создания только файла .vcxproj с помощью инструмента генерации сообщений и изменения файла .filters, чтобы использовать подстановочные знаки для помещения файлов в правильный фильтр. Например, файл с именем ORDERRequest.h
должен попасть в фильтр GENERATED_MSGS/ORDER/h
. Есть ли способ определить подстановочный знак для этого, чтобы ORDER * .h находился в одной папке, а COM * .h - в другой? Я наткнулся на тег <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
, но он недостаточно гибок для меня, поскольку я хочу разбить его больше, чем просто по расширению.