Qbs:安装文件保留层次结构

Qbs: install files preserving hierarchy

我有一个目录,其子目录中的文件将与我的应用程序(qml 插件)一起部署。问题是:如果我尝试安装目录:

Group {
    name: "somegroup"
    files: ["mysrc/dir"]
    qbs.install: true
    qbs.installDir: "mybuild"
}

我收到 "Not recursively copying directory 'mysrc/dir' into target directory 'mybuild'. Install the individual file artifacts instead." 错误。

如果我尝试安装文件:

Group {
    name: "somegroup"
    files: ["mysrc/dir/**/*"]
    qbs.install: true
    qbs.installDir: "mybuild"
}

然后所有这些文件都进入同一目录,忽略层次结构(并且无法安装,因为其中一些共享名称)。

多组的解决方案也太冗长了。

有没有办法用文件递归地安装目录,保留层次结构?

qbs.installSourceBase属性;这正是它的用途。

用法示例:

Group {
    name: "qt_qml_plugins"
    prefix: Qt.core.pluginPath + "/../qml/"
    files: [
        "QtQml/**",
        "QtQuick/**",
        "QtQuick.2/**",
        "QtPositioning/**",
        "QtLocation/**"
    ]
    excludeFiles: ["**/*d.dll"]
    qbs.install: true
    qbs.installDir: "../../qml"
    qbs.installSourceBase: prefix
}