19 Commits
Author SHA1 Message Date
Oliver Hamlet 4574d8751a Specify the minimum supported Rust version 2026-04-03 16:19:47 +01:00
Oliver Hamlet 81388873da Add bits for cross-compiling to Windows using MinGW
Some tests have been updated because UTF-8 is used as the native
path encoding with MinGW/Wine, unlike MSVC/Windows.

Some of the tests fail:

- 4 Rust tests fail because long paths are not enabled and so the
  paths used when creating symlinks and junction paths are too
  long. I've tested them with x86_64-pc-windows-gnu and
  x86_64-pc-windows-gnullvm, and both see the same behaviour. The
  tests pass when the MinGW-built executable is run on Windows, so
  this is a Wine limitation.
- 12 C++ tests fail because directory symlink creation is not
  implemented. They fail whether the MinGW-built executable is run
  in Wine or on Windows, so this is a MinGW limitation.
- 1 C++ filesystem test fails because long paths are not enabled.

The failing tests are skipped at runtime when built with MinGW,
aside from the one test for long paths being enabled, which expects
them to be disabled when built with MinGW.

If long paths are enabled, e.g. by running

wine reg add HKLM\\System\\CurrentControlSet\\Control\\Filesystem /v LongPathsEnabled /t REG_DWORD /d 1 /f

then many more tests fail because the C++ tests create long paths
when that Registry value is set, but it doesn't seem to actually
enable long path support in Wine, so various filesystem operations
fail.
2026-02-03 08:52:23 +00:00
Oliver Hamlet 6fb3c8fb6c Reformat table in cpp/README.md 2026-01-31 16:04:23 +00:00
Oliver Hamlet 903bdf6ef7 Add a FetchContent example to cpp readme 2025-08-01 18:21:44 +01:00
Oliver Hamlet 40f3ece061 Add LIBLOOT_BUILD_SHARED CMake option
To avoid libloot setting the global BUILD_SHARED_LIBS when used through FetchContent.
2025-07-23 19:07:41 +01:00
Oliver Hamlet 03d835f965 Improve readmes 2025-06-15 20:12:24 +01:00
Oliver Hamlet f4511b99bb Move cpp/docs to docs 2025-06-11 19:06:08 +01:00
Oliver Hamlet baa94903c5 Move relevant usage notes to the changelog 2025-06-08 20:59:15 +01:00
Oliver Hamlet db9f51a2b2 Update changelog and version for 0.27.0 2025-06-08 20:59:14 +01:00
Oliver Hamlet fe3e2b2711 Remove FileAccessError
It wasn't usefully different from just throwing std::runtime_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet 699915efff Update the versions and changelog to 0.26.2
To reflect the v0.26.2 release of the C++ implementation.
2025-05-16 23:28:01 +01:00
Oliver Hamlet a9dcb26f4c Update doc comments in C++ wrapper 2025-05-16 19:00:55 +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 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 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 531210afac Remove some outdated info from readme 2025-05-05 11:54:58 +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