Проблема тупая до идиотизма, но бьюсь уже часа два.
Студия 2005, визардом создан типовой ATL-проект, в котором лежит парочка интерфейсов и реализующих их соклассов. Все компилится на ура, собирается и работает.
Засада в чем: MIDL генерирует пачку служебных файлов (*.idl, *.tlb, _*_i.c, _*_p.c), которые хочется закинуть в отдельную подпапку, чтобы под ногами не путались. Задаю в свойствах проекта
Linker->Embedded IDL->MIDL Commands строку
/out midl_gen\
все зашибись, но файл *.idl генерится в папку с исходниками, в подпапку не уходит. Добавляю префикс
midl_gen\ к имени idl (там же в настройках проекта), а в ответ Студия пытается класть tlb в папку
midl_gen\midl_gen\
Т.е. Студия склеивает путь из директивы
/out с путем и именем idl-файла. Конечно, я могу создать второй уровень вложенности подпапок, но как-то это... неаккуратненько.
Пробовал на манер вот этого, из нагугленого (заменив $(IntDir) на имя папки midl_gen)
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
OutputDirectory="$(IntDir)"
HeaderFileName="$(IntDir)/$(InputName).h"
DLLDataFileName="$(IntDir)/$(InputName)_c.c"
InterfaceIdentifierFileName="$(IntDir)/$(InputName)_i.c"
ProxyFileName="$(IntDir)/$(InputName)_p.c"
/>
Но директива
OutputDirectory не оказывает никакого влияния, все валится в текущую папку.
Воспрос: чего ей (Студии 2005) надо, чтобы аккуратно сложить все нагенеренные файлы в одну подпапку, отдельно от остальных исходников?