3

我有复杂的 qbs 项目树。其中一个静态库依赖于第三部分框架。我正在尝试在 qbs 中部署这个框架,但现在没有运气。

对于 dylib deploy 我使用下一个代码:

Group {
            condition: qbs.targetOS.contains("osx") && bundle.isBundle
            files: [lib.sourceDirectory +"/Mac/*.dylib"]
            qbs.install: true
            qbs.installDir: "bin/"+FileInfo.path(bundle.executablePath)
        }

对于应用程序本身,我接下来要做:

Group {
        fileTagsFilter: ["application"]
        qbs.install: install
        qbs.installDir: bundle.isBundle ? FileInfo.joinPaths(installDir, FileInfo.path(bundle.executablePath)) : installDir
    }
Group {
    fileTagsFilter: ["aggregate_infoplist", "infoplist"]
    qbs.install: install && bundle.isBundle && !bundle.embedInfoPlist
    qbs.installDir: FileInfo.joinPaths(installDir, FileInfo.path(bundle.infoPlistPath))
}

Group {
    fileTagsFilter: ["pkginfo"]
    qbs.install: install && bundle.isBundle
    qbs.installDir: FileInfo.joinPaths(installDir, FileInfo.path(bundle.pkgInfoPath))
}

所以我的问题是下一个:

  1. 这个捆绑解决方案是正确的还是有其他简单的捆绑安装解决方案?

  2. 我可以像使用 dylib 文件那样对第 3 部分框架包做类似的事情吗?

  3. 有没有办法强制 qbs 更改应用程序的 rpathes 以使用已安装的框架?

谢谢你。

4

0 回答 0