Apply a consistent ordering of module list generation.

Authored by mpyne on Dec 5 2018, 6:00 PM.


Apply a consistent ordering of module list generation.

This fixes one of the most annoying outstanding issues with
kdesrc-build. Though if I had known it would be this easy I'd have done
it sooner.

The issue is that running the same build command, with the same
dependencies applied, would often come up with different build orders.

$ kdesrc-build -p --print-modules --resume-from kcoreaddons
... build list shown
$ kdesrc-build -p --print-modules --resume-from kcoreaddons
... a different build list shown

The major cause of this is that the implicit ordering is derived from
how the KDE project modules are loaded, using a filesystem search.
Sorting the list of loaded modules when doing a search through the KDE
project hierarchy is enough to handle this.

A more theoretical issue is that the loaded dependencies themselves
could be reordered even though the dependencies haven't really changed.
To pre-emptively address this before the next kde-build-metadata cleanup
we also canonicalize all loaded dependencies into a sorted order.

Test suite passes.


mpyneDec 5 2018, 6:07 PM
R365:78a666fd0067: Don't set DCMAKE_BUILD_TYPE in kf5-frameworks-build-include