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
1. Platform and toolchain files are now all under `platforms/`, with a
single `CMake/platforms/${platform}.cmake` per platform.
2. Custom functions/macros are under `functions/`.
3. Finder modules are in `/finders`.
The `SDL_main.h` header defines `main` to be `SDL_main` *when needed
by the target platform. This header must be included before defining
`main`.
The `SDL2::SDLmain` library should be linked only to the executable, not
to `libdevilutionx`.