Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-192

Implement a means of dealing with multi-arch builds/binaries

    XMLWordPrintable

Details

    • 41595d0cf8ac00416a3a8a437eedde2715f75500 532656a552b8b4a263fd58003dbd7063564d1448

    Description

      Currently there is no way to combine leaf artifacts from a multiplexed build of a product without an additional product to receive such artifacts as inputs from dependencies. Android is served by the current approach because an application, library, and APK are all separate products. An iOS application built for multiple architectures is one product only, and using multiple products for such a case is highly undesirable.

      Ideas:

      • Nested products? Maybe every profile instance in multiplexing creates a nested product? Product-level Rules can then combine artifacts from child products (which the parent product automatically depends on all of). Downside is reliance on particular items, but customizability remains high
      • Rule condition defaults to product.profile !== undefined, product.profile === undefined refers to the "meta build". A product is built for the specified profiles plus the parent profile. The parent profile Rules take effect only for the parent. Or, every product (even non multiplexed) additionally gets built for an invisible profile that can have Rules applied only for that "slice".
      • Multiplexing on buildVariant, e.g. to combine debug/release OS X frameworks (QBS-292)

      Gradle's "flavors" might be worth looking into as design inspiration. https://docs.gradle.org/current/userguide/nativeBinaries.html#flavors This is used on Android for multiple architectures and multiple APKs.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              jbornema Joerg Bornemann
              jakepetroules Jake Petroules (DO NOT ASSIGN ISSUES)
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes