From 7bbf55cbb79c31cb41d048f9ab07f35e9438f058 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sat, 19 Apr 2025 18:27:51 +0100 Subject: [PATCH] Update changelogs and version for 0.26.0 --- CMakeLists.txt | 2 +- docs/api/changelog.rst | 50 +++++++++++++++++++++++++++++++++++++ docs/metadata/changelog.rst | 35 ++++++++++++++++++++++++++ include/loot/loot_version.h | 4 +-- src/api/resource.rc | 8 +++--- 5 files changed, 92 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba333e1c..3f44fa6a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -421,7 +421,7 @@ endif() # Install ######################################## -set(LIBLOOT_VERSION "0.25.5") +set(LIBLOOT_VERSION "0.26.0") set_property(TARGET loot PROPERTY VERSION ${LIBLOOT_VERSION}) set_property(TARGET loot PROPERTY SOVERSION 0) diff --git a/docs/api/changelog.rst b/docs/api/changelog.rst index 8a3bc208..0ebfcff5 100644 --- a/docs/api/changelog.rst +++ b/docs/api/changelog.rst @@ -2,6 +2,56 @@ Version History *************** +0.26.0 - 2025-04-19 +=================== + +Added +----- + +- :cpp:any:`loot::DatabaseInterface::Evaluate()`, which evaluates the given + condition string. +- :cpp:any:`loot::File::GetConstraint()`, which returns the file's constraint + string or an empty string if the file has no constraint. + +Changed +------- + +- ``Database::LoadLists()`` has been split into + :cpp:any:`loot::DatabaseInterface::LoadMasterlist()`, + :cpp:any:`loot::DatabaseInterface::LoadMasterlistWithPrelude()` and + :cpp:any:`loot::DatabaseInterface::LoadUserlist()`. +- :cpp:any:`loot::GameInterface::GetPlugin()` and + :cpp:any:`loot::GameInterface::GetLoadedPlugins()` now return a plugins as + ``std::shared_ptr`` instead of + ``const PluginInterface*``. +- :cpp:any:`loot::PluginInterface::GetBashTags()` now returns a + ``std::vector`` instead of a ``std::vector``, as only the + Tag objects' name values were relevant. +- The callback that is passed to :cpp:any:`loot::SetLoggingCallback()` now takes + a ``std::string_view`` instead of a ``const char*`` as its second parameter. +- :cpp:any:`loot::Group::DEFAULT_NAME` and + :cpp:any:`loot::MessageContent::DEFAULT_LANGUAGE` are now ``std::string_view`` + instead of ``const char*``. +- API functions that take string arguments now take them as ``std::string_view`` + instead of ``const std::string&``, with the exception of + :cpp:any:`loot::GameInterface::IsPluginActive()` and + :cpp:any:`loot::DatabaseInterface::Evaluate()`. +- The :cpp:any:`loot::File` constructor has been updated to allow a constraint + value to be provided. +- libloot now supports v0.26 of the metadata syntax. +- The ``/Zc:__cplusplus`` compiler flag is now set when building libloot using + MSVC. +- The yaml-cpp dependency can no longer be found using CMake's ``find_package``. + It's now possible to point libloot to an existing yaml-cpp source directory + by setting the ``FETCHCONTENT_SOURCE_DIR_YAML-CPP`` CMake variable, so offline + builds are still possible. +- Updated esplugin to v6.1.2. +- Updated fmt to v11.1.4. +- Updated libloadorder to v18.3.0. +- Updated loot-condition-interpreter to v5.3.0. +- Updated spdlog to v1.15.2. +- Updated yaml-cpp to v0.8.0+merge-key-support.2. + 0.25.5 - 2025-03-15 =================== diff --git a/docs/metadata/changelog.rst b/docs/metadata/changelog.rst index b6ca466b..67dbb907 100644 --- a/docs/metadata/changelog.rst +++ b/docs/metadata/changelog.rst @@ -4,6 +4,41 @@ Version History The version history of the metadata syntax is given below. +0.26 - 2025-04-19 +================= + +Added +----- + +- The ``File`` data structure now has a ``constraint`` key that takes a + condition string that must evaluate to true for the file's existence to be + recognised. +- The ``file_size(file_path path, file_size size)`` condition function, which + returns true if the given file's size matches the given number of bytes, and + false otherwise (including if the file doesn't exist). +- The ``filename_version(regular_expression path, version given_version, comparison_operator comparator)`` + condition function, which takes a regex path with a single capture group, a + version string and a comparison operator and returns true if there is a path + that matches the regex path and the value captured by the regex is a version + string for which the comparison against the given version is true. Unlike the + other version functions, it always returns false if it cannot find a version + to compare against the given version, irrespective of the given comparison + operator. +- The ``description_contains(file_path path, regular_expression regex)`` + condition function, which takes a path and a regex and returns true if the + given path is a plugin with a description that contains text that matches the + given regex, and false otherwise (including if the path does not exist, is not + a plugin, or has no description). +- The ``is_executable(file_path path)`` condition function, which returns true + if the given path is a Windows executable (PE) file. + +Changed +------- + +- Line breaks are now accepted as whitespace when parsing condition strings, so + long expressions can be split over multiple lines. + + 0.21 - 2023-08-30 ================= diff --git a/include/loot/loot_version.h b/include/loot/loot_version.h index f39f504b..961407b0 100644 --- a/include/loot/loot_version.h +++ b/include/loot/loot_version.h @@ -34,10 +34,10 @@ namespace loot { inline constexpr unsigned int LIBLOOT_VERSION_MAJOR = 0; /** @brief libloot's minor version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 25; +inline constexpr unsigned int LIBLOOT_VERSION_MINOR = 26; /** @brief libloot's patch version number. */ -inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 5; +inline constexpr unsigned int LIBLOOT_VERSION_PATCH = 0; /** * @brief Get the library version. diff --git a/src/api/resource.rc b/src/api/resource.rc index 80d6b3bd..b932849a 100644 --- a/src/api/resource.rc +++ b/src/api/resource.rc @@ -2,8 +2,8 @@ #include 1 VERSIONINFO -FILEVERSION 0, 25, 5, 0 -PRODUCTVERSION 0, 25, 5, 0 +FILEVERSION 0, 26, 0, 0 +PRODUCTVERSION 0, 26, 0, 0 FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL BEGIN @@ -13,12 +13,12 @@ BLOCK "040904b0" BEGIN VALUE "CompanyName", "LOOT" VALUE "FileDescription", "Library providing LOOT's core functionality" -VALUE "FileVersion", "0.25.5" +VALUE "FileVersion", "0.26.0" VALUE "InternalName", "loot" VALUE "LegalCopyright", "Copyright (C) 2013-2022 Oliver Hamlet" VALUE "OriginalFilename", "loot.dll" VALUE "ProductName", "LOOT" -VALUE "ProductVersion", "0.25.5" +VALUE "ProductVersion", "0.26.0" END END BLOCK "VarFileInfo"