【问题标题】:How to install universal binary artifacts in qbs?如何在 qbs 中安装通用二进制工件?
【发布时间】:2021-04-02 07:53:43
【问题描述】:

还有我的qbs项目:

Project {
    StaticLibrary {
        name: "targetLib"
        files: "main.cpp"

        bundle.isBundle: false

        multiplexByQbsProperties: "architectures"
        aggregate: true

        Group {
            fileTagsFilter: "bundle.content"
            qbs.install: true
            qbs.installSourceBase: buildDirectory
        }

        Depends { name: "nawesome" }
        Depends { name: "cpp" }
    }
}

在构建时,我通过设置属性 cpp.architectures: ["arm64", "x86_64"] 传递配置文件。

据我了解,多路复用以这种方式工作:每个架构构建一个,另一个用于聚合以构建通用二进制文件。聚合设置为其工件标签“bundle.content”,但未安装。

我不需要安装非通用二进制文件,所以我需要一些方法来消除它们。现在我发现的唯一方法是:

        Group {
            condition: type.contains("bundle.content")
            fileTagsFilter: "staticlibrary"
            qbs.install: true
            qbs.installSourceBase: buildDirectory
        }

但我不认为这是一个好的。

【问题讨论】:

    标签: universal-binary qbs


    【解决方案1】:

    从 qbs 1.19 开始,只需在 StaticLibrary 项目上设置“install: true”,这应该可以透明地工作(就像它已经为非多路复用产品所做的那样)。请参阅https://codereview.qt-project.org/c/qbs/qbs/+/339928 了解那里如何处理多路复用。 但是,如果您的解决方法可以解决问题,那么您也可以一直使用它直到那时。

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2018-08-17
      • 2020-12-13
      相关资源
      最近更新 更多