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

External Dependency management

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Duplicate
    • Not Evaluated
    • None
    • None
    • Dependency Tracking
    • None

    Description

      Current Qbs dependency tracking does not allow fine-grained dependency management.

      This issue describes overall architecture of the new dependency management. The suggested algorithm can be implemented as described below.

      Qbs iterates over products, collecting dependencies. For each dependency, Qbs loads the Package item which contain PackageSource items (QBS-1452) as well as qbsModuleProviders (QBS-1604) and qbsModuleSources (QBS-1658) properties. PackageSource contain per-module properties that are passed to the providers (QBS-1662). Only providers specified via qbsModuleProviders property (can be set in a Package, Product or Project) are run. Providers generate modules and contribute to search paths based on the order in the qbsModuleProviders property. If provider cannot generate requested module, it is silently skipped - we'll deal with errors later. Qbs can filter out some modules at during generation step based on PackageSource and Provider properties. Once modules are generated by providers, they are added to the same pool of modules as provided by qbsSearchPaths property. Next, qbs can filter module candidates (both "provided" and "native") based on the some constraints - e.g. only take in account modules that match current product architecture or endianness (QBS-995, QBS-1625). At this point of time, we have some module candidates left (possibly from providers or qbs itself or from Product in the project) and we pick up the first one based on the order in qbsModuleSources or emit an error if no module candidates left.

      Attachments

        Issue Links

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

          Activity

            People

              arch Ivan Komissarov
              arch Ivan Komissarov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes