我有复杂的 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))
}
所以我的问题是下一个:
这个捆绑解决方案是正确的还是有其他简单的捆绑安装解决方案?
我可以像使用 dylib 文件那样对第 3 部分框架包做类似的事情吗?
有没有办法强制 qbs 更改应用程序的 rpathes 以使用已安装的框架?
谢谢你。