Build examples by default for Kirigami
ClosedPublic

Authored by apol on Nov 13 2017, 6:05 PM.

Details

Summary

Create a tool to extract the settings projects have specified

Can be used for example to see the value of cmake-options

Improve usability of the list-dependencies tool

Preserve dependency order when listing dependencies

Always list the dependencies of dependencies before the dependencies they
depend on

Test Plan

Ported locally build-generic and I'm using it successfully.

Diff Detail

Repository
R857 CI System Tooling
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
apol created this revision.Nov 13 2017, 6:05 PM

Looks fine to me, aside from the optimisation issue in the dependency resolver.

helpers/helperslib/Buildable.py
207–214

The currentlyKnown variable is used as part of an optimisation to handle projects with massively nested dependency trees.

Prior to this optimisation resolving the dependencies for something like Kontact would take minutes to complete due to how heavily nested all of the various PIM libraries are.

How are you solving this currently?

helpers/list-dependencies.py
16 ↗(On Diff #22283)

If you wanted to simplify this further you could remove the buildSpec loader from this as well.

This would eliminate the need for product and platform from the above arguments.

apol added inline comments.Nov 13 2017, 8:40 PM
helpers/helperslib/Buildable.py
207–214

I see that's the use-case. Now I'm using list-dependencies from kde-build-dependencies/tools that doesn't have this problem. I'll send another patch that does the memoization properly.

helpers/list-dependencies.py
16 ↗(On Diff #22283)

We do need to take the platform into account though.

apol updated this revision to Diff 22294.Nov 13 2017, 8:42 PM

Improve performance while maintaining output

This revision was automatically updated to reflect the committed changes.