在由qmake生成的.vcxproj中导入.props文件

4

使用命令

qmake -tp vc -r

我正在从对应的Qt .pro文件和一堆.pri文件中生成Visual Studio .sln文件和一组.vcxproj文件。
我希望这些生成的.vcxproj文件导入我的自定义.props文件。我可以通过qmake提供路径或将其嵌入到这些.pro/.pri文件中。
这是否可能?如果是,那该怎么做?
根据我的研究,似乎只能通过添加自定义扩展名(我首先必须编写它...)到mkspecs来实现这一点...

我也很想知道这个问题的答案。 - jmbeck
1个回答

1
根据qmake源代码,这是不可能的。我已经查看了Qt4.8.5和最新的Qt5版本中的qmake\generators\win32\msbuild_objectmodel.cpp,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 补丁化以获得新功能会更好,但由于只有包括你和我在内的三个人受到此事困扰,我相信这种hack是最佳解决方案。

FYI:最终我为MS Build制作了自定义扩展,以处理Qt的“本地风格”。它们运行得很好,但在某些地方还可以进一步改进,但是MS Build社区支持较弱,而我自己也没有那么多时间。但缺少的是一些漂亮的项目模板,这将使其更加完美。也许我会在某个时候添加它们。 - Adam Badura

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接