This is a little awkward because libloot only needs Boost's headers, but it doesn't supply a CMake config unless it's built, so we build the system stub to make that happen as quickly as possible.
The ubuntu-20.04 runner is due to be deprecated on 2025-02-01 and
unsupported by 2025-04-01.
The ubuntu-24.04 runner does not include cbindgen, so it's now installed
using apt.
GCC 10 doesn't support the newer libtbb that is in Ubuntu 24.04's apt
repositories, so update to GCC 13.
The behaviour of std::filesystem::equivalent changed at some point
between GCC 10 and GCC 13, so the tests have been updated to reflect
that.
Run the build to prove it works, but don't publish the archive because LOOT no longer needs it, and it's not very portable to other Linux distributions or versions of Ubuntu, and people might try to use it instead of building from source.
This is so that LOOT can be packaged as a Flatpack package that uses the
KDE runtime's ICU libraries, which are v71.1, and so avoid bundling
a different version.
JFrog will deactivate the free account that LOOT's Artifactory is owned
by on 2023-07-02, at which point it'll no longer be possible to upload
artifacts there.
In preparation for not having an "official" hosting location for the
artifacts once my JFrog account is closed, so that the authenticity of
files hosted elsewhere can be verified.
The public key is hosted on the loot.github.io website.
GCC 8 doesn't support C++17's parallel algorithms, which I'd like to
use, and GCC 10 is the newest major version available from Ubuntu
20.04's repositories.
This commit removes a Linux-only std::filesystem::path constructor test,
which fails due to a thrown exception when compiled with GCC 10. The
failure isn't important, because libloot avoids that particular
constructor: in a sense an exception is a bit better because it would
make any usage more obvious.
None of them are actually linked any more - most were due to using
libgit2 for masterlist updates. Also refactor the CMakeLists.txt as the
libraries are target-dependent, not compiler-dependent.