Commit Graph
3957 Commits
Author SHA1 Message Date
Oliver Hamlet 4ec93727d2 Use boost::unordered_flat_map in wide strings cache
This improves sorting performance by 7%.

The change also revealed an iterator invalidation bug in the previous implementation, so now it inserts both strings into the cache before getting their wide values.
2025-01-17 20:18:34 +00:00
Oliver Hamlet a28b73517f Use boost::unordered_flat_* for sorting paths cache
This improves sorting performance by 31%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet bc8701a7ba Use boost::unordered_flat_set to hold visited vertices in FindPath()
This improves sorting performance by 40%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet ead4f21250 Return a cached reference from PluginSortingData::GetName()
Avoiding the string copies improves sorting performance by 7%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet 379cf32ec7 Avoid repeating UTF-16 conversions when setting up sorting data
This makes sorting 5% faster.
2025-01-17 20:18:28 +00:00
Oliver Hamlet 7849682946 Cache UTF-16 strings on Windows during sorting
Converting between UTF-8 and UTF-16 is surprisingly slow, this improves
sorting performance by 16%.
2025-01-17 18:52:52 +00:00
Oliver Hamlet e52b9ef2ec Construct esplugin error strings lazily
This improves sorting performance by 7% by avoiding unnecessary string
concatenation.
2025-01-17 18:52:52 +00:00
Oliver Hamlet 7abfc66f8c Run tests in parallel in CI 2025-01-15 19:01:06 +00:00
Oliver Hamlet 1f4d43a49f Adapt build to CMake's CMP0167 policy
This is a little awkward because libloot only needs Boost's headers, but it doesn't supply a CMake config unless it's built, so we build the system stub to make that happen as quickly as possible.
2025-01-15 18:31:58 +00:00
Oliver Hamlet 1e57ea1a39 Tweak how CMake is run in CI 2025-01-15 18:21:51 +00:00
Oliver Hamlet 9b6ec47709 Use ctest to run tests in CI 2025-01-15 18:17:31 +00:00
Oliver Hamlet b582f3a4fb Fix minimum required CMake
FIND_PACKAGE_ARGS was introduced in 3.24. I don't think there's any newer functionality used, but I could be wrong.
2025-01-15 18:13:54 +00:00
Oliver Hamlet aac3f68a4c Fix running tests using ctest 2025-01-15 18:13:54 +00:00
Oliver Hamlet 7442a16706 Remove dependency on Boost's UUID and Lexical Cast libraries 2025-01-15 17:10:48 +00:00
Oliver Hamlet 349981b2a0 Remove ICU version specified in CMakeLists
It doesn't really serve any purpose any more, and could end up causing issues.
2025-01-13 19:47:15 +00:00
Oliver Hamlet 9dd391d65d Remove Linux release CI job
The build was run to prove it works, but that happens in the CI job anyway, so it's just a maintenance burden.
2025-01-13 19:18:33 +00:00
Oliver Hamlet e0301302aa Install ICU from package repositories in CI
Now that the Linux release builds are no longer published, there's no real need to depend on a specific different version.
2025-01-13 19:05:40 +00:00
Oliver Hamlet 65f8bcd410 Update CI cargo cache config 2025-01-13 19:05:40 +00:00
Oliver Hamlet 0c4bc2f59a Migrate Linux CI to the ubuntu-24.04 GitHub Actions runner
The ubuntu-20.04 runner is due to be deprecated on 2025-02-01 and
unsupported by 2025-04-01.

The ubuntu-24.04 runner does not include cbindgen, so it's now installed
using apt.

GCC 10 doesn't support the newer libtbb that is in Ubuntu 24.04's apt
repositories, so update to GCC 13.

The behaviour of std::filesystem::equivalent changed at some point
between GCC 10 and GCC 13, so the tests have been updated to reflect
that.
2025-01-13 19:03:26 +00:00
Oliver Hamlet 6bc2189cc5 Update Boost to 1.87.0
Also update the download URL as downloads seem to no longer be hosted on JFrog.
2025-01-05 11:59:40 +00:00
Oliver Hamlet 5cabe7ec3f Log when a .ghost file extension is added 2025-01-05 11:08:18 +00:00
Oliver Hamlet 32db24e1c8 Don't upload Linux release archives
Run the build to prove it works, but don't publish the archive because LOOT no longer needs it, and it's not very portable to other Linux distributions or versions of Ubuntu, and people might try to use it instead of building from source.
2024-11-18 21:10:21 +00:00
Oliver Hamlet 2ac1e4363c Update spdlog to v1.15.0 2024-11-09 16:13:25 +00:00
Oliver Hamlet 44008ea720 Update changelog and version for 0.24.5 0.24.5 2024-10-24 10:40:20 +01:00
Oliver Hamlet a1de089f67 Update sorting doc 2024-10-24 10:40:19 +01:00