122 Commits
Author SHA1 Message Date
Oliver Hamlet a9dcb26f4c Update doc comments in C++ wrapper 2025-05-16 19:00:55 +01:00
Oliver Hamlet eb238c4774 Make GroupsPathError and MetadataRetrievalError enums non-exhaustive 2025-05-16 19:00:54 +01:00
Oliver Hamlet 1ed9973f39 Avoid unnecessary conversions in PluginMetadata::NameMatches() 2025-05-16 08:00:42 +01:00
Oliver Hamlet 517dc6b43c Make Vertex immutable
To match the C++ implementation. I meant to do this at the same time as the other metadata structs but missed it.
2025-05-14 18:24:54 +01:00
Oliver Hamlet 03ec3e91d5 Use uv to manage docs Python dependencies
It doesn't make much of a difference to performance in CI, as the docs
dependencies install time is dominated by getting Doxygen, but uv's use
of a lockfile does make builds more reliable.
2025-05-11 21:24:28 +01:00
Oliver Hamlet 918590e0f4 Rename the GNU license files to use SPDX IDs
The IDs used are those used by libloot. esplugin and libloadorder use GPL-3.0, a.k.a. GPL-3.0-only, but the license text is the same.
2025-05-11 16:09:03 +01:00
Oliver Hamlet 17892f54c4 Fix outdated version numbers 2025-05-11 16:09:02 +01:00
Oliver Hamlet 4b8c58c162 Add a script to automate generating license texts and notices for dependencies
The generated files are committed to avoid the risk of the generation
going wrong during a release build and it not getting noticed.
2025-05-11 16:09:02 +01:00
Oliver Hamlet 6df13bddea Fix crate licenses
libloot's C++ implementation is licensed under the GPL v3.0 or later, not v3.0 only, so carry the same into the Rust reimplementation and its dependent crates.
2025-05-11 16:08:51 +01:00
Oliver Hamlet a64256f372 Remove existing dependency copyright licenses
Most of them no longer apply, and I've got to come up with a different way of handling all the cargo dependencies.
2025-05-10 19:35:59 +01:00
Oliver Hamlet 98fdb130a6 Update the root and C++ readmes 2025-05-08 19:27:13 +01:00
Oliver Hamlet 7b870488c4 Copy docs from C++ libloot 2025-05-08 19:27:13 +01:00
Oliver Hamlet a4ff2ba4bb Fix some indentation in tests.cmake 2025-05-08 19:27:13 +01:00
Oliver Hamlet 0947b23f2b Fix missing CTest discovery of internals tests 2025-05-08 19:27:13 +01:00
Oliver Hamlet 4fbc075c71 Refactor conversion from Rust strings to C++ paths 2025-05-08 19:27:12 +01:00
Oliver Hamlet 299782705a Replace C++ internals tests
They didn't add any value. The new tests are taken from C++ libloot and test things that are still relevant for the wrapper.
2025-05-08 16:00:46 +01:00
Oliver Hamlet 531210afac Remove some outdated info from readme 2025-05-05 11:54:58 +01:00
Oliver Hamlet 9168e5e91e Remove commented-out include 2025-05-05 11:50:21 +01:00
Oliver Hamlet 43d0904a6b Don't use C++ regex for C++ NameMatches calls
To prevent inconsistencies between the C++ and Rust regex implementations. This does mean a boxed copy of the PluginMetadata object is made for each call, but fortunately LOOT doesn't actually make any calls to NameMatches().
2025-05-05 11:47:28 +01:00
Oliver Hamlet 1317eea055 Use Rust Filename comparisons for C++ Filename operators
To prevent inconsistencies between implementations. This means allocating new boxed Filenames for each comparison, but an extra string copy is avoided by making the C++ operators friends of the C++ class (which is ABI-safe).
2025-05-05 11:45:50 +01:00
Oliver Hamlet eabc7a5d85 Sync with libloot v0.26.1
Aside from adding GameType::oblivionRemastered and its usage, this is almost entirely about moving C++ files and tests around.
2025-05-02 17:56:49 +01:00
Oliver Hamlet 83d9420422 Rename cxx directory to cpp
Also update the crate name and references to it. This helps distinguish the C++ wrapper that's built using CXX from CXX itself.
2025-04-29 17:42:46 +01:00