/libloadorder

A cross-platform library for manipulating the load order and active status of plugins for the Elder Scrolls and Fallout games.

Primary LanguageRustGNU General Public License v3.0GPL-3.0

Libloadorder

CI Coverage Status docs

Libloadorder is a cross-platform library for manipulating the load order and active status of plugins for the following games:

  • TES III: Morrowind
  • TES IV: Oblivion
  • TES V: Skyrim
  • TES V: Skyrim Special Edition
  • TES V: Skyrim VR
  • Fallout 3
  • Fallout: New Vegas
  • Fallout 4
  • Fallout 4 VR

This repository hosts two Rust crates: libloadorder is the Rust library, and libloadorder-ffi is the C FFI that wraps it. The doc directory also hosts an mdbook that provides a general introduction to load orders.

To build libloadorder and its C FFI and generate C/C++ headers for it, install Rust and run cargo build --release --all --all-features.

Tests

The tests require testing-plugins, put them in testing-plugins in the repo root.

Run cargo test and cargo bench to run the Rust tests and benchmarks respectively.

To run the FFI tests, make sure you have CMake and C and C++ toolchains installed (e.g. MSVC on Windows, GCC on Linux), then create a directory at ffi/build, then from that directory run:

cmake ..
cmake --build .
ctest