Импорт файла.props в.vcxproj, сгенерированный qmake

С командой

qmake -tp vc -r

Я создаю Visual Studio .sln файл и куча .vcxproj файлы из соответствующего Qt .pro файл и куча .pri файлы.

Я хотел бы, чтобы те генерировали .vcxproj файлы для импорта моих собственных .props файл. Путь к которому я могу предоставить qmake или встроить его в тех .pro/.pri файлы.

Является ли это возможным? Если так, то как?

Поскольку из моих исследований кажется, что это можно сделать, только добавив собственное расширение (которое я должен был бы написать первым...) в mkspecs...

1 ответ

Решение

Судя по исходному коду qmake, это невозможно. Я смотрел в qmake\generators\win32\msbuild_objectmodel.cpp как в Qt4.8.5, так и в последней версии Qt5, и только листы свойств, добавленные qmake, Microsoft.Cpp.*.props (разных видов):

xml << tag("Import")
    << attrTag("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props")
    << attrTag("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')")
   << closetag()
   << closetag();

Я решил эту проблему, создав быстрый скрипт на Python, который выполняет постобработку сгенерированных файлов *.vcxproj:

for l in fileinput.FileInput('Project.vcxproj', inplace=1):
    print l,
    if 'PropertySheets' in l:
        print '    <Import Project="YourPropertySheets.props" />'

Конечно, было бы лучше исправить патч qmake с новой функциональностью, но, поскольку только вы, и я, трое обеспокоены этим, я считаю, что взлом является оптимальным решением.

Другие вопросы по тегам