Most of the complexity is handled by libloadorder, but it's worth noting that:
- The game path is OpenMW's install path, not Morrowind's
- OpenMW doesn't force master-flagged plugins to load before others
- OpenMW doesn't provide a way to record the load order of inactive plugins
- .omwgame and .omwaddon plugins are equivalent to .esm and .esp respectively, while .omwscripts plugins have a completely different format with none of the metadata that libloot uses.
- OpenMW effectively relies on additional data paths to load Morrowind's (and mods') files, and the last directory listed that contains a given filename is used to load a file with that filename, with the main data path effectively being the first listed.
- I've disabled support for ghosted plugins for OpenMW because it makes the multi-path stuff more confusing and may not provide any benefit.
Managed using the new LIBLOOT_BUILD_TESTS config option, which defaults to ON.
Also manage the Google Test and testing-plugins dependencies using FetchContent, as it integrates more neatly with FindPackage.
This means that if you're not interested in the tests, you don't need to build them or download and build Google Test or download the testing plugins.
JFrog will deactivate the free account that LOOT's Artifactory is owned
by on 2023-07-02, at which point it'll no longer be possible to upload
artifacts there.
This does nothing when using MSVC, but does work on the Makefile-based
Linux builds.
This isn't enabled by default because it makes builds take 2-3x as long.
This includes some C++ Core Guidelines checks that don't produce any
warnings. There are a few clang warnings emitted though.
AppVeyor is breaking my builds because I can't create any more artifacts
because I've hit the limit, but there's no way to have it not store
artifacts or to manually delete artifacts...
This also updates Boost from 1.67.0 to 1.69.0 due to differences between
the AppVeyor and GitHub Actions build environments.
Sorting doesn't work as for other games, because esplugin can't tell if
a plugin contains override records, so returns 0 for their count, so no
overlap edges get added.
Travis CI have migrated away from running builds in Docker containers,
and no longer link to their old Docker image, so describe the
prerequisites and assumptions as accurately as possible.
As the NodeJS dependency no longer exists, the archive script has
been replaced with a CPack implementation, and the
set_version_number script turned into a Python script.