Giter Club home page Giter Club logo

libloot's Introduction

libloot

CI Documentation Status

Introduction

LOOT is a plugin load order optimisation tool for TES III: Morrowind, TES IV: Oblivion, TES V: Skyrim, TES V: Skyrim Special Edition, Fallout 3, Fallout: New Vegas, Fallout 4 and Fallout 4 VR. It is designed to assist mod users in avoiding detrimental conflicts, by automatically calculating a load order that satisfies all plugin dependencies and maximises each plugin's impact on the user's game.

LOOT also provides some load order error checking, including checks for requirements, incompatibilities and cyclic dependencies. In addition, it provides a large number of plugin-specific usage notes, bug warnings and Bash Tag suggestions.

libloot provides access to LOOT's metadata and sorting functionality, and the LOOT application is built using it.

Downloads

Releases are hosted on GitHub.

Snapshot builds are available as artifacts from GitHub Actions runs, though they are only kept for 90 days and can only be downloaded when logged into a GitHub account. To mitigate these restrictions, snapshot build artifacts include a GPG signature that can be verified using the public key hosted here, which means it's possible to re-upload the artifacts elsewhere and still prove their authenticity.

The snapshot build artifacts are named like so:

libloot-<last tag>-<revisions since tag>-g<short revision ID>_<branch>-<platform>.<file extension>

Building libloot

Refer to .github/workflows/release.yml for the build process.

Linux

The build process assumes that you have already cloned the libloot repository, that the current working directory is its root, and that the following applications are already installed:

  • cmake
  • curl
  • git
  • pip3 (and therefore Python 3)
  • cargo and the rest of the Rust toolchain (e.g. via rustup)
  • wget

The list above may be incomplete.

CMake Variables

libloot uses the following CMake variables to set build parameters:

Parameter Values Default Description
BUILD_SHARED_LIBS ON, OFF ON Whether or not to build a shared libloot binary.
LIBLOOT_BUILD_TESTS ON, OFF ON Whether or not to build libloot's tests.
LIBLOOT_INSTALL_DOCS ON, OFF ON Whether or not to install libloot's docs (which need to be built separately).
RUN_CLANG_TIDY ON, OFF OFF Whether or not to run clang-tidy during build. Has no effect when using CMake's MSVC generator.
ESPLUGIN_URL A URL A GitHub release archive URL The URL to get a source code archive from. This can be used to supply a local path if the archive has already been downloaded (e.g. for offline builds).
LIBLOADORDER_URL A URL A GitHub release archive URL The URL to get a source code archive from. This can be used to supply a local path if the archive has already been downloaded (e.g. for offline builds).
LOOT_CONDITION_INTERPRETER_URL A URL A GitHub release archive URL The URL to get a source code archive from. This can be used to supply a local path if the archive has already been downloaded (e.g. for offline builds).

You may also need to set BOOST_ROOT if CMake cannot find Boost.

Building The Documentation

The documentation is built using Doxygen, Breathe and Sphinx. Install Doxygen and Python and make sure they're accessible from your PATH, then run:

pip install -r docs/requirements.txt
sphinx-build -b html docs build/docs/html

Alternatively, you can use Docker to avoid changing your development environment, by running docker run -it --rm -v ${PWD}/docs:/docs/docs -v ${PWD}/build:/docs/build -v ${PWD}/include:/docs/include sphinxdoc/sphinx:7.3.7 bash to obtain a shell that you can use to run apt-get update && apt-get install -y doxygen and then the two commands above.

libloot's People

Contributors

ortham avatar freso avatar tokcdk avatar trollmen avatar silentdark avatar sharlikran avatar lpradel avatar 3ventic avatar sibir-ine avatar steamb23 avatar cpasmoi avatar c0rn3j avatar niveuseverto avatar kassane avatar raehik avatar lakrits avatar nicbomb avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.