How should a VCPKG based build chain look like?

Dawid Wrobel me at dawidwrobel.com
Sun Feb 21 20:08:44 GMT 2021


On Sun, Feb 21, 2021 at 2:42 PM Alexander Maret-Huskinson <alex at maret.de> wrote:

> Overall vcpkg does not seem to support versioning,

It does, in fact – it is being readied for a release, but already
supported in the main branch:
https://devblogs.microsoft.com/cppblog/take-control-of-your-vcpkg-dependencies-with-versioning-support/

> 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.

Per the requirements, vcpkg tool itself should only require g++ >=6
and git, and should be self-sufficient for the rest of the
dependencies (the "inception" you mentioned). That is an "ideal"
scenario, but a number of dependencies, qt5 included, still rely on
some additional, system-provided libraries or tools. They do, however,
continue to reduce that list – for example, the Qt port just switched
to using vcpkg's own Mesa, so in general going forward the situation
should only get better. That doesn't change the fact that we're
looking at it now. With 16.04 Xenial going EOL in 1 month, shouldn't
we assume that whatever glibc, etc. that 18.04 Bionic LTS provides is
the minimum we're willing to support? KMyMoney is s desktop software,
after all, and it is reasonable to assume that the vast majority of
personal desktop installations no longer use releases from around 2016
– be it Ubuntu's or other vendors'. I don't think supporting older
releases is a hill worth dying on.

> 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.

While vcpkg is indeed a fairly bleeding edge piece of software, I
believe most of the issues you described can be attributed to an
attempted usage of Xenial, while their CI/CD infra tests the ports
using 18.04 (https://github.com/microsoft/vcpkg/tree/master/scripts/azure-pipelines/linux).

-- 
Regards,
Dawid


More information about the KMyMoney-devel mailing list