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.
GitHub are going to be removing their windows-2016 images in March 2022,
and there's a brownout today. I've been using MSVC 2019 locally for a
while (a year?) without any problems, and LOOT itself is now using MSVC
2019.
This means that anything linking to the binaries needs to use MSVC 2019
or newer. The details are here:
<https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=msvc-170>.
LOOT no longer uses Git to keep its copies of the masterlists up to
date, so this functionality is no longer needed. The removed API items
are:
- UpdateFile()
- GetFileRevision()
- IsLatestFile()
- libgit2_category()
- GitStateError
Older versions of Sphinx don't work with whatever the default version of
Python is on GitHub Actions, and never versions of Sphinx need a newer
version of Python.
Also update the RTD theme and Breathe while I'm at it.
Bintray will be shut down in May, and JFrog suggest migrating to
Artifactory. The free tier offers 2 GB of storage, which is much
less than what we use on Bintray, so only store one build per
branch to help avoid running out of space.
Bintray will be shut down in May, so we need to find another artifact
store before then.
GitHub Actions is one option, and allows builds to store artifacts
for up to 90 days, with apparently no storage size limit for public
repositories. 90 days is good enough to temporarily host builds for
loot/loot to use for integration testing before release.
The downside is that you need to be logged into a GitHub account in
order to download a build artifact uploaded to GitHub Actions.
Building cbindgen takes a few minutes on Windows, so avoid that by using
the version included in the GitHub Actions runner.
The version include in the runners isn't the same as what the build
expects, but hopefully the differences aren't significant.
AppVeyor is breaking my builds because I can't create any more artifacts
because I've hit the limit, but there's no way to have it not store
artifacts or to manually delete artifacts...
This also updates Boost from 1.67.0 to 1.69.0 due to differences between
the AppVeyor and GitHub Actions build environments.