Skip to content
  • Michael Pyne's avatar
    dep-resolv: Keep relative order of module-sets without KDE metadata. · 40872af1
    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