Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package c++utilities for openSUSE:Factory 
checked in at 2026-09-28 10:44:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/c++utilities (Old)
 and      /work/SRC/openSUSE:Factory/.c++utilities.new.383539 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "c++utilities"

Mon Sep 28 10:44:40 2026 rev:3 rq:1380736 version:5.36.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/c++utilities/c++utilities.changes        
2026-07-12 16:22:20.102417185 +0200
+++ /work/SRC/openSUSE:Factory/.c++utilities.new.383539/c++utilities.changes    
2026-09-28 10:44:53.498028560 +0200
@@ -1,0 +2,11 @@
+Thu Sep 24 23:35:49 UTC 2026 - Jonatas Gonçalves <[email protected]>
+
+- Update to version 5.36.0
+  * Add tests also under bin when building for Windows
+  * Improve finding test file path under Windows
+  * Remove arch-i686-w64-mingw32-qt6 preset
+  * Remove problematic link_directories from CMake config 
+  * Bump minor version
+  * Update default C++ version to C++20
+
+-------------------------------------------------------------------

Old:
----
  _scmsync.obsinfo
  cpp-utilities-5.34.2.tar.gz

New:
----
  cpp-utilities-5.36.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ c++utilities.spec ++++++
--- /var/tmp/diff_new_pack.qSIrKi/_old  2026-09-28 10:44:54.198057889 +0200
+++ /var/tmp/diff_new_pack.qSIrKi/_new  2026-09-28 10:44:54.199057930 +0200
@@ -20,7 +20,7 @@
 %define soname 5
 
 Name:           %{reponame}
-Version:        5.34.2
+Version:        5.36.0
 Release:        0
 Summary:        Common C++ classes and routines
 License:        GPL-2.0-or-later
@@ -109,6 +109,9 @@
 %cmake_install
 %endif
 
+# Strip debugging symbols from the shared library
+strip --strip-unneeded %{buildroot}%{_libdir}/lib%{reponame}.so.*
+
 %post -n lib%{reponame}%{soname} -p /sbin/ldconfig
 %postun -n lib%{reponame}%{soname} -p /sbin/ldconfig
 

++++++ cpp-utilities-5.34.2.tar.gz -> cpp-utilities-5.36.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/CMakeLists.txt 
new/cpp-utilities-5.36.0/CMakeLists.txt
--- old/cpp-utilities-5.34.2/CMakeLists.txt     2026-06-28 19:42:10.000000000 
+0200
+++ new/cpp-utilities-5.36.0/CMakeLists.txt     2026-09-19 23:10:37.000000000 
+0200
@@ -95,6 +95,7 @@
     cmake/templates/Config.cmake.in
     cmake/templates/config.h.in
     cmake/templates/desktop.in
+    cmake/templates/env_init.cpp.in
     cmake/templates/appdata.xml.in
     cmake/templates/doxygen.in
     cmake/templates/sphinx-conf.py.in
@@ -121,8 +122,8 @@
 set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}";)
 set(META_APP_DESCRIPTION "Useful C++ classes and routines such as argument 
parser, IO and conversion utilities")
 set(META_VERSION_MAJOR 5)
-set(META_VERSION_MINOR 34)
-set(META_VERSION_PATCH 2)
+set(META_VERSION_MINOR 36)
+set(META_VERSION_PATCH 0)
 
 # find required 3rd party libraries
 include(3rdParty)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/CMakePresets.json 
new/cpp-utilities-5.36.0/CMakePresets.json
--- old/cpp-utilities-5.34.2/CMakePresets.json  2026-06-28 19:42:10.000000000 
+0200
+++ new/cpp-utilities-5.36.0/CMakePresets.json  2026-09-19 23:10:37.000000000 
+0200
@@ -303,13 +303,6 @@
       }
     },
     {
-      "name": "arch-i686-w64-mingw32-qt6",
-      "inherits": ["qt6", "arch-i686-w64-mingw32"],
-      "displayName": "Combination of qt6 and arch-i686-w64-mingw32",
-      "description": "See description of qt6 and arch-i686-w64-mingw32",
-      "binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-i686-w64-mingw32-qt6"
-    },
-    {
       "name": "arch-x86_64-w64-mingw32-qt6",
       "inherits": ["qt6", "arch-x86_64-w64-mingw32"],
       "displayName": "Combination of qt6 and arch-x86_64-w64-mingw32",
@@ -678,7 +671,6 @@
     {"name": "arch-x86_64-w64-mingw32", "configurePreset": 
"arch-x86_64-w64-mingw32"},
     {"name": "arch-i686-w64-mingw32-static", "configurePreset": 
"arch-i686-w64-mingw32-static"},
     {"name": "arch-x86_64-w64-mingw32-static", "configurePreset": 
"arch-x86_64-w64-mingw32-static"},
-    {"name": "arch-i686-w64-mingw32-qt6", "configurePreset": 
"arch-i686-w64-mingw32-qt6"},
     {"name": "arch-x86_64-w64-mingw32-qt6", "configurePreset": 
"arch-x86_64-w64-mingw32-qt6"},
     {"name": "arch-i686-w64-mingw32-static-qt6", "configurePreset": 
"arch-i686-w64-mingw32-static-qt6"},
     {"name": "arch-x86_64-w64-mingw32-static-qt6", "configurePreset": 
"arch-x86_64-w64-mingw32-static-qt6"},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/README.md 
new/cpp-utilities-5.36.0/README.md
--- old/cpp-utilities-5.34.2/README.md  2026-06-28 19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/README.md  2026-09-19 23:10:37.000000000 +0200
@@ -415,8 +415,11 @@
 * The Android packages for the dependencies Boost, Qt, iconv, OpenSSL, and 
Kirigami are provided on the AUR and
   by my [PKGBUILDs](http://github.com/Martchus/PKGBUILDs) repo.
 * The latest Java version that is currently supported is version 17; see 
QTBUG-119223.
-* Use `QT_QUICK_CONTROLS_STYLE=Material` and `QT_QUICK_CONTROLS_MOBILE=1` to 
test the Qt Quick GUI as it would
-  be shown under Android via a normal desktop build.
+* Set `QT_QUICK_CONTROLS_STYLE=Material` if dynamic selection of the
+  [Qt Quick Controls 
style](https://doc.qt.io/qt-6/qtquickcontrols-styles.html) is enabled to test 
the Qt Quick GUI
+  as it would be shown under Android via a normal desktop build.
+* Set `QT_QUICK_CONTROLS_MOBILE=1` for Kirigami apps to test the Qt Quick GUI 
as it would be shown under Android
+  via a normal desktop build.
 * One can open the Gradle project that is created within the build directory 
in Android Studio and run the app in
   the emulator.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cpp-utilities-5.34.2/cmake/modules/3rdPartyFunctions.cmake 
new/cpp-utilities-5.36.0/cmake/modules/3rdPartyFunctions.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/3rdPartyFunctions.cmake      
2026-06-28 19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/3rdPartyFunctions.cmake      
2026-09-19 23:10:37.000000000 +0200
@@ -155,8 +155,8 @@
         CACHE PATH "whether to force usage of external iconv (rather than the 
using the one bundled with glibc)")
     if (NOT FORCE_EXTERNAL_ICONV)
         # check whether iconv exists in standard lib
-        include(CheckFunctionExists)
-        check_function_exists(iconv HAS_ICONV)
+        include(CheckSymbolExists)
+        check_symbol_exists(iconv_open iconv.h HAS_ICONV)
     endif ()
     if (NOT FORCE_EXTERNAL_ICONV AND HAS_ICONV)
         message(STATUS "Using iconv from the standard library for target 
${META_PROJECT_NAME}.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/cmake/modules/AppTarget.cmake 
new/cpp-utilities-5.36.0/cmake/modules/AppTarget.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/AppTarget.cmake      2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/AppTarget.cmake      2026-09-19 
23:10:37.000000000 +0200
@@ -15,6 +15,21 @@
     )
 endif ()
 
+include(AppUtilities)
+
+# allow injecting runtime env vars at build time by setting CMake cache 
variable
+set("INJECT_ENV_LIST_DOC"
+    "Inject env vars to be available at runtime (KEY=VALUE:OVERWRITE, e.g. 
MY_VAR=hello:1;ANOTHER_VAR=test:0)")
+set("INJECT_ENV_LIST"
+    ""
+    CACHE STRING "${INJECT_ENV_LIST_DOC}")
+set("${META_PROJECT_VARNAME_UPPER}_INJECT_ENV_LIST"
+    ""
+    CACHE STRING "${INJECT_ENV_LIST_DOC} for ${META_PROJECT_NAME}")
+if (INJECT_ENV_LIST)
+    generate_env_config(ENV_LIST 
"${INJECT_ENV_LIST};${${META_PROJECT_VARNAME_UPPER}_INJECT_ENV_LIST}" OUT_VAR 
SRC_FILES)
+endif ()
+
 # define relevant files
 set(ALL_FILES
     ${HEADER_FILES}
@@ -83,6 +98,11 @@
     set_target_properties(${META_TARGET_NAME} PROPERTIES CXX_STANDARD 
"${META_CXX_STANDARD}")
 endif ()
 
+# output all libs and executables in one "bin" directory under Windows for 
easier execution as there is no RPATH
+if (WIN32)
+    set_target_properties(${META_TARGET_NAME} PROPERTIES 
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+endif ()
+
 # set properties for macOS bundle and generate icon for macOS bundle
 if (GUI_TYPE STREQUAL "MACOSX_BUNDLE")
     set_target_properties(
@@ -223,6 +243,4 @@
     endif ()
 endif ()
 
-include(AppUtilities)
-
 set(TARGET_CONFIG_DONE YES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cpp-utilities-5.34.2/cmake/modules/AppUtilities.cmake 
new/cpp-utilities-5.36.0/cmake/modules/AppUtilities.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/AppUtilities.cmake   2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/AppUtilities.cmake   2026-09-19 
23:10:37.000000000 +0200
@@ -128,3 +128,51 @@
 
     add_appstream_file()
 endfunction ()
+
+function (generate_env_config)
+    # parse arguments
+    set(ONE_VALUE_ARGS OUT_VAR)
+    set(MULTI_VALUE_ARGS ENV_LIST)
+    set(OPTIONAL_ARGS)
+    cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" 
"${MULTI_VALUE_ARGS}" ${ARGN})
+
+    # make @ENV_VAR_LIST@
+    set(ENV_VAR_LIST "")
+    foreach (PAIR ${ARGS_ENV_LIST})
+        # extract key, VALUE, and overwrite flag format: KEY=VALUE:OVERWRITE
+        string(FIND "${PAIR}" "=" EQ_POS)
+        if (EQ_POS EQUAL -1)
+            message(FATAL_ERROR "Invalid env PAIR '${PAIR}': must be 
KEY=VALUE[:OVERWRITE]")
+        endif ()
+        string(SUBSTRING "${PAIR}" 0 ${EQ_POS} KEY)
+        string(SUBSTRING "${PAIR}" ${EQ_POS} -1 REST)
+        string(SUBSTRING "${REST}" 1 -1 KEY_VALUE_REST) # skip '='
+        string(FIND "${KEY_VALUE_REST}" ":" COL_POS)
+        if (COL_POS EQUAL -1)
+            set(VALUE "${KEY_VALUE_REST}")
+            set(OVERWRITE 0) # no overwrite specified, default to 0
+        else ()
+            string(SUBSTRING "${KEY_VALUE_REST}" 0 ${COL_POS} VALUE)
+            string(SUBSTRING "${KEY_VALUE_REST}" ${COL_POS} -1 REST2)
+            string(SUBSTRING "${REST2}" 1 -1 OVERWRITE) # skip ':'
+        endif ()
+
+        # escape backslashes and quotes in KEY and VALUE
+        string(REPLACE "\\" "\\\\" ESCAPED_VALUE "${VALUE}")
+        string(REPLACE "\"" "\\\"" ESCAPED_VALUE "${ESCAPED_VALUE}")
+        string(REPLACE "\\" "\\\\" ESCAPED_KEY "${KEY}")
+        string(REPLACE "\"" "\\\"" ESCAPED_KEY "${ESCAPED_KEY}")
+
+        # append to @ENV_VAR_LIST@
+        set(ENV_VAR_LIST "${ENV_VAR_LIST}        EnvVar{\"${ESCAPED_KEY}\", 
\"${ESCAPED_VALUE}\", ${OVERWRITE}},\n")
+    endforeach ()
+
+    # generate env_init.cpp
+    find_template_file("env_init.cpp" CPP_UTILITIES ENV_INIT_TEMPLATE_FILE)
+    set(INIT_FILE "${CMAKE_CURRENT_BINARY_DIR}/resources/env_init.cpp")
+    configure_file("${ENV_INIT_TEMPLATE_FILE}" "${INIT_FILE}")
+    list(APPEND "${ARGS_OUT_VAR}" "${INIT_FILE}")
+    set("${ARGS_OUT_VAR}"
+        "${${ARGS_OUT_VAR}}"
+        PARENT_SCOPE)
+endfunction ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/cmake/modules/BasicConfig.cmake 
new/cpp-utilities-5.36.0/cmake/modules/BasicConfig.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/BasicConfig.cmake    2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/BasicConfig.cmake    2026-09-19 
23:10:37.000000000 +0200
@@ -121,11 +121,7 @@
 
 # set default CXX_STANDARD for all library, application and test targets
 if (NOT META_CXX_STANDARD)
-    if (MSVC)
-        set(META_CXX_STANDARD 20) # MSVC needs C++ 20 mode for designated 
initializers
-    else ()
-        set(META_CXX_STANDARD 17)
-    endif ()
+    set(META_CXX_STANDARD 20)
 endif ()
 
 # set version to 0.0.0 if not specified explicitly
@@ -372,7 +368,22 @@
 if (NOT META_SRCDIR_REFS)
     set(META_SRCDIR_REFS "${CMAKE_CURRENT_SOURCE_DIR}")
 endif ()
-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/srcdirref" "${META_SRCDIR_REFS}")
+if (WIN32)
+    # under Windows all executables and libs are output in the same directory
+    set(PRESENT_SRCDIR_REFS "")
+    if (EXISTS "${CMAKE_BINARY_DIR}/bin/srcdirref")
+        file(STRINGS "${CMAKE_BINARY_DIR}/bin/srcdirref" PRESENT_SRCDIR_REFS)
+    endif ()
+    if (NOT "${META_SRCDIR_REFS}" IN_LIST PRESENT_SRCDIR_REFS)
+        if (PRESENT_SRCDIR_REFS)
+            file(APPEND "${CMAKE_BINARY_DIR}/bin/srcdirref" 
"\n${META_SRCDIR_REFS}")
+        else ()
+            file(APPEND "${CMAKE_BINARY_DIR}/bin/srcdirref" 
"${META_SRCDIR_REFS}")
+        endif ()
+    endif ()
+else ()
+    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/srcdirref" "${META_SRCDIR_REFS}")
+endif ()
 # -> ensure the directory "testfiles" exists in the build directory; tests of 
my projects use it by default to create working
 # copies of testfiles
 file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/testfiles")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cpp-utilities-5.34.2/cmake/modules/LibraryTarget.cmake 
new/cpp-utilities-5.36.0/cmake/modules/LibraryTarget.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/LibraryTarget.cmake  2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/LibraryTarget.cmake  2026-09-19 
23:10:37.000000000 +0200
@@ -217,9 +217,6 @@
     if (NOT META_CXX_STANDARD STREQUAL "any")
         set_target_properties(${META_TARGET_NAME} PROPERTIES CXX_STANDARD 
"${META_CXX_STANDARD}")
     endif ()
-    if (META_PLUGIN_CATEGORY)
-        set_target_properties(${META_TARGET_NAME} PROPERTIES 
LIBRARY_OUTPUT_DIRECTORY "${META_PLUGIN_CATEGORY}")
-    endif ()
 
     # incorporate the SOVERSION into the library name for mingw-w64 targets
     set(TARGET_SUFFIX_FOR_PC "")
@@ -260,6 +257,18 @@
         target_compile_definitions(${META_TARGET_NAME}-headers INTERFACE 
"${META_PUBLIC_COMPILE_DEFINITIONS}")
         target_compile_options(${META_TARGET_NAME}-headers INTERFACE 
"${META_PUBLIC_COMPILE_OPTIONS}")
     endif ()
+
+    # set output directory
+    if (WIN32)
+        # output all libs and executables in one "bin" directory under Windows 
for easier execution as there is no RPATH
+        set_target_properties(${META_TARGET_NAME} PROPERTIES 
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+        if (META_PLUGIN_CATEGORY)
+            set_target_properties(${META_TARGET_NAME} PROPERTIES 
LIBRARY_OUTPUT_DIRECTORY
+                                                                 
"${CMAKE_BINARY_DIR}/bin/${META_PLUGIN_CATEGORY}")
+        endif ()
+    elseif (META_PLUGIN_CATEGORY)
+        set_target_properties(${META_TARGET_NAME} PROPERTIES 
LIBRARY_OUTPUT_DIRECTORY "${META_PLUGIN_CATEGORY}")
+    endif ()
 endif ()
 
 # avoid warnings when including autogen files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cpp-utilities-5.34.2/cmake/modules/TestUtilities.cmake 
new/cpp-utilities-5.36.0/cmake/modules/TestUtilities.cmake
--- old/cpp-utilities-5.34.2/cmake/modules/TestUtilities.cmake  2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/modules/TestUtilities.cmake  2026-09-19 
23:10:37.000000000 +0200
@@ -87,6 +87,11 @@
         set_target_properties("${TEST_TARGET_NAME}" PROPERTIES CXX_STANDARD 
"${META_CXX_STANDARD}")
     endif ()
 
+    # output all libs and executables in one "bin" directory under Windows for 
easier execution as there is no RPATH
+    if (WIN32)
+        set_target_properties(${TEST_TARGET_NAME} PROPERTIES 
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
+    endif ()
+
     # avoid warnings when including autogen files
     if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.27)
         set_target_properties("${TEST_TARGET_NAME}" PROPERTIES 
AUTOGEN_USE_SYSTEM_INCLUDE ON)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/cmake/templates/Config.cmake.in 
new/cpp-utilities-5.36.0/cmake/templates/Config.cmake.in
--- old/cpp-utilities-5.34.2/cmake/templates/Config.cmake.in    2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/cmake/templates/Config.cmake.in    2026-09-19 
23:10:37.000000000 +0200
@@ -124,7 +124,6 @@
     parse_arguments_for_use_functions(${ARGN})
 
     # link against library (also "link" against header-only libs to get 
compile defs and interface link libs)
-    link_directories(${@META_PROJECT_VARNAME_UPPER@_LIB_DIR})
     if (ARGS_ONLY_HEADERS)
         set(TARGET_NAME "${@META_PROJECT_VARNAME_UPPER@_LIB}-headers")
     else ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/cmake/templates/env_init.cpp.in 
new/cpp-utilities-5.36.0/cmake/templates/env_init.cpp.in
--- old/cpp-utilities-5.34.2/cmake/templates/env_init.cpp.in    1970-01-01 
01:00:00.000000000 +0100
+++ new/cpp-utilities-5.36.0/cmake/templates/env_init.cpp.in    2026-09-19 
23:10:37.000000000 +0200
@@ -0,0 +1,21 @@
+// Created via CMake from template env_init.cpp.in
+// WARNING! Any changes to this file will be overwritten by the next CMake run!
+
+#include <array>
+#include <cstdlib>
+
+struct EnvVar {
+    const char *name = nullptr;
+    const char *value = nullptr;
+    int overwrite = 0;
+};
+
+// List of environment variables to set
+extern const auto envVars = [] {
+    static constexpr auto vars = std::array{
+@ENV_VAR_LIST@    };
+    for (const auto &envVar : vars) {
+        setenv(envVar.name, envVar.value, envVar.overwrite);
+    }
+    return vars;
+}();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/doc/buildvariables.md 
new/cpp-utilities-5.36.0/doc/buildvariables.md
--- old/cpp-utilities-5.34.2/doc/buildvariables.md      2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/doc/buildvariables.md      2026-09-19 
23:10:37.000000000 +0200
@@ -235,7 +235,7 @@
   version; the default is 0
 * `META_PROJECT_TYPE=application/library/plugin/qtplugin`: specifies whether
   to build an application, a library, or a plugin
-* `META_CXX_STANDARD=11/14/..`: specifies the C++ version; the default is 14
+* `META_CXX_STANDARD=11/14/…`: specifies the C++ version; the default is 20
 * `META_NO_TIDY`: disables the availability of enabling formatting via
   `CLANG_FORMAT_ENABLED` for this project
 * `META_NO_INSTALL_TARGETS`: the project is not meant to be installed, e.g., a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cpp-utilities-5.34.2/tests/testutils.cpp 
new/cpp-utilities-5.36.0/tests/testutils.cpp
--- old/cpp-utilities-5.34.2/tests/testutils.cpp        2026-06-28 
19:42:10.000000000 +0200
+++ new/cpp-utilities-5.36.0/tests/testutils.cpp        2026-09-19 
23:10:37.000000000 +0200
@@ -25,6 +25,12 @@
 #include <unistd.h>
 #endif
 
+#ifdef PLATFORM_WINDOWS
+#ifdef CPP_UTILITIES_USE_STANDARD_FILESYSTEM
+#include <filesystem>
+#endif
+#endif
+
 #ifdef CPP_UTILITIES_BOOST_PROCESS
 #include <boost/asio/buffers_iterator.hpp>
 #include <boost/asio/io_context.hpp>
@@ -707,15 +713,24 @@
 #if defined(CPP_UTILITIES_USE_STANDARD_FILESYSTEM) && defined(PLATFORM_UNIX)
     try {
         binaryPath = 
std::filesystem::read_symlink("/proc/self/exe").parent_path();
-        binaryPath += '/';
     } catch (const std::filesystem::filesystem_error &e) {
         cerr << Phrases::Warning << "Unable to detect binary path for finding 
\"srcdirref\": " << e.what() << Phrases::EndFlush;
     }
+#elif defined(CPP_UTILITIES_USE_STANDARD_FILESYSTEM) && 
defined(PLATFORM_WINDOWS)
+    auto binaryPathBuffer = std::vector<wchar_t>();
+    auto copied = DWORD();
+    do {
+        binaryPathBuffer.resize(binaryPathBuffer.size() + MAX_PATH);
+        copied = GetModuleFileNameW(0, binaryPathBuffer.data(), 
static_cast<DWORD>(binaryPathBuffer.size()));
+    } while (copied >= binaryPathBuffer.size());
+    binaryPath = std::filesystem::path(binaryPathBuffer.begin(), 
binaryPathBuffer.begin() + copied, std::filesystem::path::native_format)
+                     .parent_path()
+                     .generic_string();
 #endif
-    const auto srcdirrefPath = binaryPath + "srcdirref";
+    const auto srcdirrefPath = binaryPath.empty() ? "srcdirref" : binaryPath + 
"/srcdirref";
     try {
         // read "srcdirref" file which should contain the path of the source 
directory
-        const auto srcDirContent = readFile(srcdirrefPath, 2 * 1024);
+        const auto srcDirContent = readFile(srcdirrefPath, 1024 * 1024);
         if (srcDirContent.empty()) {
             cerr << Phrases::Warning << "The file \"srcdirref\" is empty." << 
Phrases::EndFlush;
             return res;

Reply via email to