[cmake-developers] External projects & library dependencies

Wouter Klouwen wouter.klouwen at youview.com
Wed Apr 12 09:01:19 EDT 2017


On 11/04/17 22:27, Roger Leigh wrote:
> [..] If your projects are buildable in
> parallel with the third-party sources, you can add each third-party
> source, plus each first-party project, as a separate external project
> and then build the entire collection in parallel.

We effectively have this arrangement in place already, except it's of
our own creation instead of being CMake rules. So yes, this approach
works in principle.

> The only thing that's changed with the superbuild vs a completely
> self-contained project is the location of the higher-level organisation.
>   With the superbuild, that is moved out into a separate project which
> coordinates the building of everything with appropriate inter-project
> dependencies.

What's also different in the level to which the machine can be loaded.
If you were to look at our graph of dependencies, it's not a very nicely
balanced one and some of the third party packages don't compile reliably
in parallel.
So in order to get the best and most even load on our build servers, it
makes sense to have a self contained CMake so that we have target level
dependencies, as opposed to project level.

I suppose there's not many generic solutions to this as without having a
"super build" it's a bit of a chicken-egg problem.

Thanks,
     W
This transmission contains information that may be confidential and contain personal views which are not necessarily those of YouView TV Ltd. YouView TV Ltd (Co No:7308805) is a limited liability company registered in England and Wales with its registered address at YouView TV Ltd, 3rd Floor, 10 Lower Thames Street, London, EC3R 6YT. For details see our web site at http://www.youview.com


More information about the cmake-developers mailing list