How should a VCPKG based build chain look like?

Alexander Maret-Huskinson alex at maret.de
Sun Feb 21 19:42:09 GMT 2021


Hello,

I looked into the vcpkg tool today and was wondering how the KMyMoney 
build chain should look like, especially when it comes to dependency 
versioning.

Overall vcpkg does not seem to support versioning, but you are supposed 
to checkout the port-versions you are interested in. The build chain 
either needs to know the commit id of each and every dependency or the 
ports have to be added to the KMyMoney codebase. What is the preferred 
approach here? I guess number two is easier to maintain.

In the long term, it will be interesting how this all works out. When 
the main vcpkg tool evolves and gets incompatible to the port versions 
in the KMyMoney repository, then we have to upgrade or lose the 
advantage of community maintained ports. It does not look like vcpkg 
would maintain older port-versions in any way. Or do they?

When it comes to using vcpkg for the AppImg build, there will be a lot 
of challenges. I tried to compile Qt on Ubuntu Xenial today, using 
vcpkg, but the whole build chain is basically incompatible. This is due 
to the versioning problem as well. The Qt dependencies, maintained by 
vcpkg, require build tools which are just not available on Xenial. A 
different cmake version here, a newer phython version there, a different 
version of library xyz and so on.

Maybe this can be fixed by using vcpkg to build the dependencies of the 
build chains of the dependencies (dependency inception anyone?). 
Honestly, I'm quite surprised this works well on Windows and MacOS. My 
experience with vcpkg was pretty messy so far. I hope a lot of these 
problems are due to my ignorance and not real problems.

All the Best
Alex



More information about the KMyMoney-devel mailing list