Add FreeBSD install instructions.
FreeBSD port has been reworked and updated to latest release, notable changes are:
---
games/devilutionX: update to 1.4
- Update to 1.4
- Drop dependency on font, no longer needed
- Drop unnecessary .desktop file patches (also upstream PR exists)
- Install from the port (instead of patching CMakeLists.txt), to be
more explicit and flexible
- Convert to pkg-plist as there are more files now
- The new version tries to fetch dependencies from the net, for some
depenencies this is unconditional. Fetch these properly with
GH_TUPLE and place in a directory where CMake expectes them.
- Upstream code expects patch component in the version, so add an extra
.0 to VERSION_NUM. This should not break on (future) X.Y.Z versions
as the component will move to micropatch position and will be ignored
- BINARY_RELEASE option is gone
- Untie DEBUG (engine debug bode) from WITH_DEBUG knob (build debug
binary), these are orthogonal
- Properly support optional depends; zerotier is the only one
broken as it conflicts with system header (see
https://github.com/diasurgical/devilutionX/issues/4585)
- Install devilutionx (own) data file
- Since it's not versioned, use a little hack to add a tag to the
filename to avoid clashes on the future updates; this seemed less
evil than introducing DIST_SUBDIR
- Use two-level datadir to be consistent with ~/.local/share path
- Update pkg-message (Diablo data file doesn't have to be lowercase,
works either way)
---
FreeBSD port url: https://www.freshports.org/games/devilutionX/
Thanks,
Nuno Eduardo Teixeira
eduardo@FreeBSD.org
1. Run Docker as the current user instead of root,
removing the need to chown directories.
2. Copy `devilutionx.info` via CMake, removing the need to do it
manually.
3. Cleanup `prep.sh` somewhat.
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`.
This is mainly to help me test code builds under GCC faster than pushing to the remote and letting the build server do it. If someone without WSL installed selects the build target they'll get an error in their IDE, but no harmful impact other than that. The variables should be populated for any WSL2 installation. No idea about WSL1.
The whitespace in this file is showing significant changes because visual studio regenerates the whole file when a change is made, I didn't think it was worth reverting since it'll happen again next time someone makes a change (seems it defaults to spaces...). Added an entry to .editorconfig documenting the format used.
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.