-
Michael Pyne authored
We currently use the order we run into module and module-set definitions as a tie breaker for dependency handling between modules that do not have KDE project metadata, as this makes it less likely to have random build orders for modules, by allowing the user to set the build order. However this doesn't work for module-sets, as the modules in the entire module-set instead have the same relative order. This isn't normally a problem as module-sets to date have always been for kde-projects, aside from very advanced users, so KDE project metadata is available. However the upcoming Qt6 support will not use KDE project metadata (as none is available even for our Gitlab mirror of Qt6) but it would still be helpful to use a module-set to group these. kdesrc-build already supports making a new repository entry easily enough, but random build orders are a problem because Qt6 modules must be built in a certain order. We fix this by using a creation ID for each named item in use-modules for a module set, and then having the ksb::ModuleSet imbue newly created ksb::Modules with the appropriate ordering ID so that the later dependency resolution pass can do the right thing. This doesn't do anything to impact "indirect" modules that can be pulled into a module-set without being named explicitly, but that should only be a possibility with kde-projects-based module sets anyways and those already have dependency metadata.
40872af1