複雑な qbs プロジェクト ツリーがあります。また、静的ライブラリの 1 つは 3rd-part フレームワークに依存しています。このフレームワークを 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 を変更させる方法はありますか?
ありがとうございました。