Previously, only the translations were copied for Android at build time.
The other assets were copied only at configure time.
Replaces Android-specific handling with a general mechanism to override
the build-time assets directory.
Instead of using the `GETTEXT_PROCESS_PO_FILES` function, do it
ourselves in a cleaner way.
This fixes a number of issues:
1. Translations and assets are now built whenever the binary is built,
without causing the binary to be rebuilt.
2. Translations are only copied to `build/assets` (previously they were
also copied to `build/`).
3. This should now be compatible with the new XCode.
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`.
The does some pruning of the dependencies' files to avoid a 100 MiB+ tarball.
Even with that, the final tarball size is 17 MiB with xz, 25 MiB with gzip.
See the file documentation at the top of `tools/make_src_dist.py` for
more information.
libmpq is a much simpler alternative to StormLib for reading MPQ archives.
We use our own fork of libmpq: https://github.com/diasurgical/libmpq
Impact:
* DevilutionX is now a lot more portable. Unlike StormLib, libmpq only
needs platform-specific code for Windows.
* Locks around file access **removed** (instead we duplicate the file descriptor for streamed audio only).
* RAM usage is **300 KiB** lower than StormLib.
* Stripped release linux_x86_64 binary is **32 KiB** smaller.
* Amiga build now hangs instead of crashing.
This ensures that devilutionx.mpq is never out-of-date.
It will be rebuilt whenever the assets change.
This will also allow us to move translations into the mpq in a follow-up
commit.