You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2026/07/21 14:33:39 UTC

svn commit: r1936422 - subversion/trunk

Author: jun66j5
Date: Tue Jul 21 14:33:38 2026
New Revision: 1936422

Log:
cmake: Follow-up to r1936349, restore the minimum version of cmake to `3.14`.

* CMakeLists.txt
  (cmake_minimum_required):
    Ditto.
  (test_prepend_builddir_to_path):
    Add function to prepend the build directory to PATH environment.
    If cmake version is 3.22 or later, use `ENVIRONMENT_MODIFICATION` with
    `path_list_prepend` simply.  Otherwise, build the value and use
    `ENVIRONMENT`.
  (swig-perl, swig-python, swig-ruby):
    Use `test_prepend_builddir_to_path()` instead of `ENVIRONMENT_MODIFICATION`
    directly.

Modified:
   subversion/trunk/CMakeLists.txt

Modified: subversion/trunk/CMakeLists.txt
==============================================================================
--- subversion/trunk/CMakeLists.txt	Tue Jul 21 12:45:05 2026	(r1936421)
+++ subversion/trunk/CMakeLists.txt	Tue Jul 21 14:33:38 2026	(r1936422)
@@ -21,7 +21,7 @@
 
 # CMAKE_MINIMUM_REQUIRED should be the first directive in the file:
 # https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html
-cmake_minimum_required(VERSION 3.22)
+cmake_minimum_required(VERSION 3.14)
 
 # CMP0092: MSVC warning flags are not in CMAKE_<LANG>_FLAGS by default.
 if(POLICY CMP0092)
@@ -861,6 +861,23 @@ function(swig_target_external_runtime ta
   target_sources(${target} INTERFACE ${swig_runtime_path})
 endfunction()
 
+function(test_prepend_builddir_to_path name)
+  file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" dir)
+  if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.22")
+    set_property(TEST ${name} APPEND PROPERTY ENVIRONMENT_MODIFICATION
+      "PATH=path_list_prepend:${dir}"
+    )
+  else()
+    if(WIN32)
+      # Replace <;> with <\;> to prevent conversion to a list
+      string(REPLACE ";" "\\;" value "PATH=${dir};$ENV{PATH}")
+    else()
+      set(value "PATH=${dir}:$ENV{PATH}")
+    endif()
+    set_property(TEST ${name} APPEND PROPERTY ENVIRONMENT "${value}")
+  endif()
+endfunction()
+
 if(SVN_ENABLE_SWIG_PYTHON)
   find_package(PY3C REQUIRED)
 
@@ -920,9 +937,7 @@ if(SVN_ENABLE_SWIG_PYTHON)
       "${CMAKE_CURRENT_BINARY_DIR}/swig-python"
   )
   if(WIN32 OR CYGWIN)
-    set_property(TEST swig-python APPEND PROPERTY ENVIRONMENT_MODIFICATION
-      "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
-    )
+    test_prepend_builddir_to_path(swig-python)
   endif()
 endif()
 
@@ -1001,9 +1016,7 @@ if(SVN_ENABLE_SWIG_PERL)
       ${CMAKE_CURRENT_SOURCE_DIR}/subversion/bindings/swig/perl/native
   )
   if(WIN32 OR CYGWIN)
-    set_property(TEST swig-perl APPEND PROPERTY ENVIRONMENT_MODIFICATION
-      "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
-    )
+    test_prepend_builddir_to_path(swig-perl)
   endif()
 endif()
 
@@ -1053,9 +1066,7 @@ if(SVN_ENABLE_SWIG_RUBY)
     "SVN_TEST_SWIG_RUBY=ctest"
   )
   # svnserve in the build directory is launched by the tests
-  set_property(TEST swig-ruby APPEND PROPERTY ENVIRONMENT_MODIFICATION
-    "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
-  )
+  test_prepend_builddir_to_path(swig-ruby)
 endif()
 
 ### Checks


Re: svn commit: r1936422 - subversion/trunk

Posted by Daniel Sahlberg <da...@gmail.com>.
Den ons 22 juli 2026 kl 03:45 skrev Jun Omae <ju...@gmail.com>:

> On Wed, Jul 22, 2026 at 3:32 AM Timofei Zhakov <ti...@chemodax.net> wrote:
> >
> > I think here you've changed the behaviour by using the configure time
> environment instead of the one when tests are run (which I assume
> ENVIRONMENT_MODIFICATION does). This is not mentioned in the log message.
> >
> > Btw, did you consider simply requiring more modern cmake when swig
> bindings are enabled? I remember before we bumped to 3.14 from 3.12 there
> was logic to still force cmake 3.14/3.13 (I don't remember the exact
> version) for the bindings. The default config should not be affected by
> this but the bindings (I assume a lot of consumers don't compile them) - in
> this case they will have to get a newer cmake.
> >
> > --
> > Timofei Zhakov
>
> That might be r1932396 ?
>
> After r1934847, the CheckCompilerFlag is used but the module is
> introduced in 3.19.
> See also https://cmake.org/cmake/help/latest/module/CheckCompilerFlag.html
>
> [[[
> $ ../cmake-build.sh --cmake=3.14
> Configurations:
>   apxs: /usr/bin/apxs2
>   cmake: /home/jun66j5/cmake/3.14/bin/cmake
>   ctest: /home/jun66j5/cmake/3.14/bin/ctest
>   ctest args:
>   java: /usr/bin/java
>   perl: /usr/bin/perl
>   pod2man: /usr/bin/pod2man
>   py3c: /home/jun66j5/src/subversion/py3c-1.4/include
>   python: /usr/bin/python3
>   ruby: /usr/bin/ruby
>   swig: /home/jun66j5/swig/3.0.12/bin/swig
>   builddir: /dev/shm/svn-cmake-build.1kNkr/build
>
> -- The C compiler identification is GNU 11.4.0
> -- Check for working C compiler: /usr/bin/cc
> -- Check for working C compiler: /usr/bin/cc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- Detecting C compile features
> -- Detecting C compile features - done
> -- The CXX compiler identification is GNU 11.4.0
> -- Check for working CXX compiler: /usr/bin/c++
> -- Check for working CXX compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info
> -- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features
> -- Detecting CXX compile features - done
> -- Found SWIG: /home/jun66j5/swig/3.0.12/bin/swig (found version "3.0.12")
> CMake Error at CMakeLists.txt:339 (include):
>   include could not find load file:
>
>     CheckCompilerFlag
>
>
> CMake Error at CMakeLists.txt:343 (check_compiler_flag):
>   Unknown CMake command "check_compiler_flag".
> Call Stack (most recent call first):
>   CMakeLists.txt:366 (SVN_CFLAGS_ADD_IFELSE)
>
>
> -- Configuring incomplete, errors occurred!
> See also "/dev/shm/svn-cmake-build.1kNkr/build/CMakeFiles/CMakeOutput.log".
> ]]]
>
> After the changes for CheckCompilerFlag are commented temporarily, the
> following error is occurred.
> The Intl::Intl is added in 3.20.
> See https://cmake.org/cmake/help/latest/module/FindIntl.html
>
> [[[
> -- Found Intl: /usr/include
> CMake Error at CMakeLists.txt:453 (add_library):
>   add_library cannot create ALIAS target "external-intl" because target
>   "Intl::Intl" is imported but not globally visible.
> ]]]
>
> Currently, the minimum required version 3.14 is not met. At least, it
> seems that 3.20 is needed. If the minimum required is important, I
> think we should run the build, test and install in the CI with the
> minimum version of cmake.
>
>
If we update to 3.20, we should still support Visual Studio 2019, right?
That means supporting all Microsoft's supported dev-env. We might loose a
few of the older LTS flavours of different Linux distributions, but there
is always autoconf for them.

How much of an issue is it to not have ENVIRONMENT_MODIFICATION? Is there a
way to guesstimate the market share of Visual Studio 2019 (to judge the
impact of requiring Visual Studio 2022) and/or how difficult is it to
aquire a newer CMake version for Visual Studio 2019? I assume you cannot
work with the project within the VS devenv if it require a newer CMake
version but if you accept only building on the command line if you have an
external CMake.

/Daniel

Re: svn commit: r1936422 - subversion/trunk

Posted by Ivan Zhakov <iv...@apache.org>.
On Wed, 29 Jul 2026 at 18:34, Jun Omae <ju...@gmail.com> wrote:

> On Wed, Jul 29, 2026 at 8:09 PM Ivan Zhakov <iv...@apache.org> wrote:
> >
> > On Thu, 23 Jul 2026 at 18:04, Jun Omae <ju...@gmail.com> wrote:
> >
> > [..]
> >>
> >> > After the changes for CheckCompilerFlag are commented temporarily, the
> >> > following error is occurred.
> >> > The Intl::Intl is added in 3.20.
> >> > See https://cmake.org/cmake/help/latest/module/FindIntl.html
> >> >
> >> > [[[
> >> > -- Found Intl: /usr/include
> >> > CMake Error at CMakeLists.txt:453 (add_library):
> >> >   add_library cannot create ALIAS target "external-intl" because
> target
> >> >   "Intl::Intl" is imported but not globally visible.
> >> > ]]]
> >> >
> >>
> >> Fixed in r1936526.
> >>
> > It looks the workaround from r1936526 is no longer needed since we
> bumped CMake minimum required version to 3.20 (r1936635)
> >
> > I have tested build with CMake 3.20 and r1936526 reverted: the build
> works fine.
> >
>
> See cmake 3.18 release notes,
> https://cmake.org/cmake/help/latest/release/3.18.html#commands
>
> > The add_library() and add_executable() commands learned to create Alias
> Targets referencing non-GLOBAL Imported Targets.
>
> The workaround is no longer needed for cmake 3.18 or later.
>
>

> > So I suggested to revert  r1936526.
> >
> > WDYT?
> >
>
> I have no objection.
>
> Done in  r1936758 <https://svn.apache.org/r1936758>.

Thanks!

-- 
Ivan Zhakov

Re: svn commit: r1936422 - subversion/trunk

Posted by Jun Omae <ju...@gmail.com>.
On Wed, Jul 29, 2026 at 8:09 PM Ivan Zhakov <iv...@apache.org> wrote:
>
> On Thu, 23 Jul 2026 at 18:04, Jun Omae <ju...@gmail.com> wrote:
>
> [..]
>>
>> > After the changes for CheckCompilerFlag are commented temporarily, the
>> > following error is occurred.
>> > The Intl::Intl is added in 3.20.
>> > See https://cmake.org/cmake/help/latest/module/FindIntl.html
>> >
>> > [[[
>> > -- Found Intl: /usr/include
>> > CMake Error at CMakeLists.txt:453 (add_library):
>> >   add_library cannot create ALIAS target "external-intl" because target
>> >   "Intl::Intl" is imported but not globally visible.
>> > ]]]
>> >
>>
>> Fixed in r1936526.
>>
> It looks the workaround from r1936526 is no longer needed since we bumped CMake minimum required version to 3.20 (r1936635)
>
> I have tested build with CMake 3.20 and r1936526 reverted: the build works fine.
>

See cmake 3.18 release notes,
https://cmake.org/cmake/help/latest/release/3.18.html#commands

> The add_library() and add_executable() commands learned to create Alias Targets referencing non-GLOBAL Imported Targets.

The workaround is no longer needed for cmake 3.18 or later.

> So I suggested to revert  r1936526.
>
> WDYT?
>

I have no objection.

-- 
Jun Omae <ju...@gmail.com> (大前 潤)

Re: svn commit: r1936422 - subversion/trunk

Posted by Ivan Zhakov <iv...@apache.org>.
On Thu, 23 Jul 2026 at 18:04, Jun Omae <ju...@gmail.com> wrote:

[..]

> > After the changes for CheckCompilerFlag are commented temporarily, the
> > following error is occurred.
> > The Intl::Intl is added in 3.20.
> > See https://cmake.org/cmake/help/latest/module/FindIntl.html
> >
> > [[[
> > -- Found Intl: /usr/include
> > CMake Error at CMakeLists.txt:453 (add_library):
> >   add_library cannot create ALIAS target "external-intl" because target
> >   "Intl::Intl" is imported but not globally visible.
> > ]]]
> >
>
> Fixed in r1936526.
>
> It looks the workaround from r1936526 is no longer needed since we bumped
CMake minimum required version to 3.20 (r1936635)

I have tested build with CMake 3.20 and r1936526 reverted: the build works
fine.

So I suggested to revert  r1936526.

WDYT?

-- 
Ivan Zhakov

Re: svn commit: r1936422 - subversion/trunk

Posted by Jun Omae <ju...@gmail.com>.
On 2026/07/22 10:44, Jun Omae wrote:
> On Wed, Jul 22, 2026 at 3:32 AM Timofei Zhakov <ti...@chemodax.net> wrote:
>>
>> I think here you've changed the behaviour by using the configure time environment instead of the one when tests are run (which I assume ENVIRONMENT_MODIFICATION does). This is not mentioned in the log message.
>>
>> Btw, did you consider simply requiring more modern cmake when swig bindings are enabled? I remember before we bumped to 3.14 from 3.12 there was logic to still force cmake 3.14/3.13 (I don't remember the exact version) for the bindings. The default config should not be affected by this but the bindings (I assume a lot of consumers don't compile them) - in this case they will have to get a newer cmake.
>>
>> --
>> Timofei Zhakov
> 
> That might be r1932396 ?

Building Python bindings requires Python3::Module component, which is added in cmake 3.15. Other targets can be built with cmake 3.14. 


> After r1934847, the CheckCompilerFlag is used but the module is
> introduced in 3.19.
> See also https://cmake.org/cmake/help/latest/module/CheckCompilerFlag.html
> 
> [[[
> CMake Error at CMakeLists.txt:339 (include):
>   include could not find load file:
> 
>     CheckCompilerFlag
> 
> 
> CMake Error at CMakeLists.txt:343 (check_compiler_flag):
>   Unknown CMake command "check_compiler_flag".
> Call Stack (most recent call first):
>   CMakeLists.txt:366 (SVN_CFLAGS_ADD_IFELSE)
> ]]]

The check_compiler_flag() is used to verify whether the -W options are available. If the module is unavailable, adding the options can be skipped. Alternatively, wouldn't it be possible to check the options using try_compile()? After resolving the issue, it is able to build with cmake 3.14 (or 3.15).

[[[
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5a7e49225..d219fb0f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -352,15 +352,22 @@ else()
   # Assume that all compilers except MSVC are GCC-compatible and support
   # the -W syntax

-  include(CheckCompilerFlag)
-  # Adds flags if one is supported by the compiler
-  function(SVN_CFLAGS_ADD_IFELSE flag)
-    set(variable "HAVE_FLAG_${flag}")
-    check_compiler_flag(C ${flag} ${variable})
-    if (${${variable}})
-      add_compile_options("${flag}")
-    endif()
-  endfunction()
+  include(CheckCompilerFlag OPTIONAL)
+  if(COMMAND check_compiler_flag)
+    # Adds flags if one is supported by the compiler
+    function(SVN_CFLAGS_ADD_IFELSE flag)
+      set(variable "HAVE_FLAG_${flag}")
+      check_compiler_flag(C ${flag} ${variable})
+      if (${${variable}})
+        add_compile_options("${flag}")
+      endif()
+    endfunction()
+  else()
+    message(NOTICE "CheckCompilerFlag module unavailable")
+    function(SVN_CFLAGS_ADD_IFELSE flag)
+      message(NOTICE "Skipped Test HAVE_FLAG_${flag}")
+    endfunction()
+  endif()

   # Add flags that all versions of GCC (should) support
   add_compile_options(-Wpointer-arith)
]]]


> After the changes for CheckCompilerFlag are commented temporarily, the
> following error is occurred.
> The Intl::Intl is added in 3.20.
> See https://cmake.org/cmake/help/latest/module/FindIntl.html
> 
> [[[
> -- Found Intl: /usr/include
> CMake Error at CMakeLists.txt:453 (add_library):
>   add_library cannot create ALIAS target "external-intl" because target
>   "Intl::Intl" is imported but not globally visible.
> ]]]
> 

Fixed in r1936526.

-- 
Jun Omae <ju...@gmail.com> (大前 潤)

Re: svn commit: r1936422 - subversion/trunk

Posted by Jun Omae <ju...@gmail.com>.
On Wed, Jul 22, 2026 at 3:32 AM Timofei Zhakov <ti...@chemodax.net> wrote:
>
> I think here you've changed the behaviour by using the configure time environment instead of the one when tests are run (which I assume ENVIRONMENT_MODIFICATION does). This is not mentioned in the log message.
>
> Btw, did you consider simply requiring more modern cmake when swig bindings are enabled? I remember before we bumped to 3.14 from 3.12 there was logic to still force cmake 3.14/3.13 (I don't remember the exact version) for the bindings. The default config should not be affected by this but the bindings (I assume a lot of consumers don't compile them) - in this case they will have to get a newer cmake.
>
> --
> Timofei Zhakov

That might be r1932396 ?

After r1934847, the CheckCompilerFlag is used but the module is
introduced in 3.19.
See also https://cmake.org/cmake/help/latest/module/CheckCompilerFlag.html

[[[
$ ../cmake-build.sh --cmake=3.14
Configurations:
  apxs: /usr/bin/apxs2
  cmake: /home/jun66j5/cmake/3.14/bin/cmake
  ctest: /home/jun66j5/cmake/3.14/bin/ctest
  ctest args:
  java: /usr/bin/java
  perl: /usr/bin/perl
  pod2man: /usr/bin/pod2man
  py3c: /home/jun66j5/src/subversion/py3c-1.4/include
  python: /usr/bin/python3
  ruby: /usr/bin/ruby
  swig: /home/jun66j5/swig/3.0.12/bin/swig
  builddir: /dev/shm/svn-cmake-build.1kNkr/build

-- The C compiler identification is GNU 11.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 11.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SWIG: /home/jun66j5/swig/3.0.12/bin/swig (found version "3.0.12")
CMake Error at CMakeLists.txt:339 (include):
  include could not find load file:

    CheckCompilerFlag


CMake Error at CMakeLists.txt:343 (check_compiler_flag):
  Unknown CMake command "check_compiler_flag".
Call Stack (most recent call first):
  CMakeLists.txt:366 (SVN_CFLAGS_ADD_IFELSE)


-- Configuring incomplete, errors occurred!
See also "/dev/shm/svn-cmake-build.1kNkr/build/CMakeFiles/CMakeOutput.log".
]]]

After the changes for CheckCompilerFlag are commented temporarily, the
following error is occurred.
The Intl::Intl is added in 3.20.
See https://cmake.org/cmake/help/latest/module/FindIntl.html

[[[
-- Found Intl: /usr/include
CMake Error at CMakeLists.txt:453 (add_library):
  add_library cannot create ALIAS target "external-intl" because target
  "Intl::Intl" is imported but not globally visible.
]]]

Currently, the minimum required version 3.14 is not met. At least, it
seems that 3.20 is needed. If the minimum required is important, I
think we should run the build, test and install in the CI with the
minimum version of cmake.

-- 
Jun Omae <ju...@gmail.com> (大前 潤)

Re: svn commit: r1936422 - subversion/trunk

Posted by Timofei Zhakov <ti...@chemodax.net>.
On Tue, Jul 21, 2026 at 4:33 PM <ju...@apache.org> wrote:

> Author: jun66j5
> Date: Tue Jul 21 14:33:38 2026
> New Revision: 1936422
>
> Log:
> cmake: Follow-up to r1936349, restore the minimum version of cmake to
> `3.14`.
>
> * CMakeLists.txt
>   (cmake_minimum_required):
>     Ditto.
>   (test_prepend_builddir_to_path):
>     Add function to prepend the build directory to PATH environment.
>     If cmake version is 3.22 or later, use `ENVIRONMENT_MODIFICATION` with
>     `path_list_prepend` simply.  Otherwise, build the value and use
>     `ENVIRONMENT`.
>   (swig-perl, swig-python, swig-ruby):
>     Use `test_prepend_builddir_to_path()` instead of
> `ENVIRONMENT_MODIFICATION`
>     directly.
>
> Modified:
>    subversion/trunk/CMakeLists.txt
>
> Modified: subversion/trunk/CMakeLists.txt
>
> ==============================================================================
> --- subversion/trunk/CMakeLists.txt     Tue Jul 21 12:45:05 2026
> (r1936421)
> +++ subversion/trunk/CMakeLists.txt     Tue Jul 21 14:33:38 2026
> (r1936422)
> @@ -21,7 +21,7 @@
>
>  # CMAKE_MINIMUM_REQUIRED should be the first directive in the file:
>  # https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html
> -cmake_minimum_required(VERSION 3.22)
> +cmake_minimum_required(VERSION 3.14)
>
>  # CMP0092: MSVC warning flags are not in CMAKE_<LANG>_FLAGS by default.
>  if(POLICY CMP0092)
> @@ -861,6 +861,23 @@ function(swig_target_external_runtime ta
>    target_sources(${target} INTERFACE ${swig_runtime_path})
>  endfunction()
>
> +function(test_prepend_builddir_to_path name)
> +  file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" dir)
> +  if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.22")
> +    set_property(TEST ${name} APPEND PROPERTY ENVIRONMENT_MODIFICATION
> +      "PATH=path_list_prepend:${dir}"
> +    )
> +  else()
> +    if(WIN32)
> +      # Replace <;> with <\;> to prevent conversion to a list
> +      string(REPLACE ";" "\\;" value "PATH=${dir};$ENV{PATH}")
> +    else()
> +      set(value "PATH=${dir}:$ENV{PATH}")
> +    endif()
> +    set_property(TEST ${name} APPEND PROPERTY ENVIRONMENT "${value}")
> +  endif()
> +endfunction()
> +
>  if(SVN_ENABLE_SWIG_PYTHON)
>    find_package(PY3C REQUIRED)
>
> @@ -920,9 +937,7 @@ if(SVN_ENABLE_SWIG_PYTHON)
>        "${CMAKE_CURRENT_BINARY_DIR}/swig-python"
>    )
>    if(WIN32 OR CYGWIN)
> -    set_property(TEST swig-python APPEND PROPERTY ENVIRONMENT_MODIFICATION
> -      "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
> -    )
> +    test_prepend_builddir_to_path(swig-python)
>    endif()
>  endif()
>
> @@ -1001,9 +1016,7 @@ if(SVN_ENABLE_SWIG_PERL)
>        ${CMAKE_CURRENT_SOURCE_DIR}/subversion/bindings/swig/perl/native
>    )
>    if(WIN32 OR CYGWIN)
> -    set_property(TEST swig-perl APPEND PROPERTY ENVIRONMENT_MODIFICATION
> -      "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
> -    )
> +    test_prepend_builddir_to_path(swig-perl)
>    endif()
>  endif()
>
> @@ -1053,9 +1066,7 @@ if(SVN_ENABLE_SWIG_RUBY)
>      "SVN_TEST_SWIG_RUBY=ctest"
>    )
>    # svnserve in the build directory is launched by the tests
> -  set_property(TEST swig-ruby APPEND PROPERTY ENVIRONMENT_MODIFICATION
> -    "PATH=path_list_prepend:$<SHELL_PATH:${CMAKE_CURRENT_BINARY_DIR}>"
> -  )
> +  test_prepend_builddir_to_path(swig-ruby)
>  endif()
>
>  ### Checks
>
>
I think here you've changed the behaviour by using the configure time
environment instead of the one when tests are run (which I
assume ENVIRONMENT_MODIFICATION does). This is not mentioned in the log
message.

Btw, did you consider simply requiring more modern cmake when swig bindings
are enabled? I remember before we bumped to 3.14 from 3.12 there was logic
to still force cmake 3.14/3.13 (I don't remember the exact version) for the
bindings. The default config should not be affected by this but the
bindings (I assume a lot of consumers don't compile them) - in this case
they will have to get a newer cmake.

-- 
Timofei Zhakov