It didn't work because it didn't have the right target directories listed, but even with the right directories it wouldn't work because they get wiped by CMake when it starts building.
Although the game doesn't require master files to load before non-master files, if they load after that can apparently cause issues, so make LOOT sort master files first.
UV's use of a lockfile makes building the docs more reliable, and it installs the dependencies faster too (though in CI that's largely hidden by having to install Doxygen every time).
It doesn't have any effect with the 7Z generator that's used on Windows, but I've added it for Windows anyway in case that changes in a future version of CMake.
It doesn't make much of a difference to performance in CI, as the docs
dependencies install time is dominated by getting Doxygen, but uv's use
of a lockfile does make builds more reliable.
Splitting up the build job means that each of the build targets (tests
with coverage, C++ wrapper, Python wrapper, Node.js wrapper) don't need
to wait for the things they don't use, but it does:
- increase duplication within the job, as GitHub Actions doesn't support
using YAML anchors
- increase the total build cache usage: together the jobs use 2450 MB vs
1740 MB