`PKG_CONFIG_EXECUTABLE` must be a cache variable, otherwise only the first call to `find_program(PkgConfig)` succeeds.
Also bumps the CI environment to Ubuntu 22.04, because Ubuntu 20.04
version of mingw pkgconfig is bugged.
1. Use the `release.published` event because `release.created` never
triggers for releases that start off as drafts.
2. Use a simpler action to upload files (the defaults are more
appropriate for what we need, which is just uploading the files and
not doing anything else).
Updates to ubuntu-22.04 because ubuntu-latest (20.04) fails with:
> version `GLIBC_2.33' not found (required by /opt/lepus-toolchain/bin/mipsel-lepus-linux-musl-gcc.br_real)
ISO is not useful for us because the user still has to put diabdat.mpq
on the hard drive. At this point, might as well put DevilutionX on the
hard drive as well.
Changes the CI to produce a zip file with our assets and the `default.xbe`
executable.
1. Use `${{ }}` consistently. It is technically not required in `if`
conditions but GitHub CI docs use it and it avoid certain pitfalls,
such as when the value starts with `!` (making it a YAML type
declaration).
2. Fixes one of the `if`s.
1. Adds a `libdevilution_so` target when tests are enabled.
2. Each test file is now a separate binary target linked against `libdevilutionx_so` (can now run tests in parallel).
3. Tests are now defined in a separate `test/CMakeLists.txt` file.
4. Building the tests is now controlled by the standard `BUILD_TESTING` option (defined by CTest).
5. Tests are now built by default.
6. On CI, test errors are now reported.
Also:
* `.clang-format`: Enable SortIncludes in tests
* `path_test.cpp`: Fix -Wsign-compare