Browse Source

Merge branch 'backport-ci-debian-13' into ci-debian-13

Brad King 3 weeks ago
parent
commit
3653b3e95e
45 changed files with 135 additions and 118 deletions
  1. 21 21
      .gitlab-ci.yml
  2. 0 0
      .gitlab/ci/configure_debian13_aarch64_extdeps.cmake
  3. 0 0
      .gitlab/ci/configure_debian13_aarch64_ninja.cmake
  4. 0 0
      .gitlab/ci/configure_debian13_extdeps.cmake
  5. 0 0
      .gitlab/ci/configure_debian13_hip_radeon.cmake
  6. 1 1
      .gitlab/ci/configure_debian13_iwyu.cmake
  7. 0 0
      .gitlab/ci/configure_debian13_makefiles_clang.cmake
  8. 0 0
      .gitlab/ci/configure_debian13_makefiles_inplace.cmake
  9. 1 1
      .gitlab/ci/configure_debian13_ninja.cmake
  10. 0 0
      .gitlab/ci/configure_debian13_ninja_clang.cmake
  11. 1 1
      .gitlab/ci/configure_debian13_ninja_common.cmake
  12. 1 1
      .gitlab/ci/configure_debian13_ninja_multi_symlinked.cmake
  13. 1 1
      .gitlab/ci/docker/debian13-aarch64/Dockerfile
  14. 3 3
      .gitlab/ci/docker/debian13-aarch64/deps_packages.lst
  15. 0 0
      .gitlab/ci/docker/debian13-aarch64/docker-clean
  16. 0 0
      .gitlab/ci/docker/debian13-aarch64/dpkg-exclude
  17. 0 0
      .gitlab/ci/docker/debian13-aarch64/install_deps.sh
  18. 2 2
      .gitlab/ci/docker/debian13-x86_64/Dockerfile
  19. 3 6
      .gitlab/ci/docker/debian13-x86_64/deps_packages.lst
  20. 0 0
      .gitlab/ci/docker/debian13-x86_64/docker-clean
  21. 0 0
      .gitlab/ci/docker/debian13-x86_64/dpkg-exclude
  22. 0 0
      .gitlab/ci/docker/debian13-x86_64/install_deps.sh
  23. 1 1
      .gitlab/ci/docker/debian13-x86_64/install_iwyu.sh
  24. 0 0
      .gitlab/ci/docker/debian13-x86_64/install_rvm.sh
  25. 3 3
      .gitlab/ci/docker/debian13-x86_64/iwyu_packages.lst
  26. 1 1
      .gitlab/ci/docker/debian13-x86_64/rvm_packages.lst
  27. 0 9
      .gitlab/ci/env_debian12_hip_radeon.sh
  28. 0 0
      .gitlab/ci/env_debian13_aarch64_extdeps.sh
  29. 0 0
      .gitlab/ci/env_debian13_extdeps.sh
  30. 1 0
      .gitlab/ci/env_debian13_hip_radeon.sh
  31. 2 2
      .gitlab/ci/env_debian13_makefiles_clang.sh
  32. 0 0
      .gitlab/ci/env_debian13_ninja.sh
  33. 2 2
      .gitlab/ci/env_debian13_ninja_clang.sh
  34. 0 0
      .gitlab/ci/env_debian13_ninja_multi_symlinked.sh
  35. 4 4
      .gitlab/ci/swift-env.sh
  36. 3 3
      .gitlab/ci/ticlang.sh
  37. 36 36
      .gitlab/os-linux.yml
  38. 21 15
      Modules/FindImageMagick.cmake
  39. 5 0
      Modules/FindJNI.cmake
  40. 2 0
      Modules/FindPostgreSQL.cmake
  41. 6 0
      Source/cmDocumentationFormatter.cxx
  42. 1 4
      Source/cmDocumentationFormatter.h
  43. 3 0
      Tests/FindImageMagick/Test/CMakeLists.txt
  44. 5 1
      Tests/FindImageMagick/Test/main_magick_wand.c
  45. 5 0
      Tests/FindJNI/Minimal/CMakeLists.txt

+ 21 - 21
.gitlab-ci.yml

@@ -104,9 +104,9 @@ l:spellcheck:
         - .linux_x86_64_tags
         - .run_automatically
 
-l:iwyu-debian12:
+l:iwyu-debian13:
     extends:
-        - .debian12_iwyu
+        - .debian13_iwyu
         - .cmake_build_linux
         - .linux_x86_64_tags
         - .cmake_cdash_artifacts
@@ -245,9 +245,9 @@ b:centos7-aarch64:
         CMAKE_CI_ARTIFACTS_NAME: "artifacts-centos7-aarch64"
         CMAKE_CI_NO_MR: "true"
 
-t:debian12-ninja:
+t:debian13-ninja:
     extends:
-        - .debian12_ninja
+        - .debian13_ninja
         - .cmake_test_linux_release
         - .linux_x86_64_tags
         - .cmake_junit_artifacts
@@ -256,9 +256,9 @@ t:debian12-ninja:
     variables:
         CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
 
-t:debian12-aarch64-ninja:
+t:debian13-aarch64-ninja:
     extends:
-        - .debian12_aarch64_ninja
+        - .debian13_aarch64_ninja
         - .cmake_test_linux_release
         - .linux_aarch64_tags
         - .cmake_junit_artifacts
@@ -267,9 +267,9 @@ t:debian12-aarch64-ninja:
     variables:
         CMAKE_CI_NO_MR: "true"
 
-t:debian12-ninja-clang:
+t:debian13-ninja-clang:
     extends:
-        - .debian12_ninja_clang
+        - .debian13_ninja_clang
         - .cmake_test_linux_release
         - .linux_x86_64_tags
         - .run_dependent
@@ -277,9 +277,9 @@ t:debian12-ninja-clang:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-t:debian12-makefiles-clang:
+t:debian13-makefiles-clang:
     extends:
-        - .debian12_makefiles_clang
+        - .debian13_makefiles_clang
         - .cmake_test_linux_release
         - .linux_x86_64_tags
         - .run_dependent
@@ -287,9 +287,9 @@ t:debian12-makefiles-clang:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-t:debian12-ninja-multi-symlinked:
+t:debian13-ninja-multi-symlinked:
     extends:
-        - .debian12_ninja_multi_symlinked
+        - .debian13_ninja_multi_symlinked
         - .cmake_test_linux_release
         - .linux_x86_64_tags
         - .cmake_junit_artifacts
@@ -299,11 +299,11 @@ t:debian12-ninja-multi-symlinked:
         CMAKE_CI_JOB_NIGHTLY: "true"
         CMAKE_CI_JOB_NIGHTLY_NINJA: "true"
 
-t:debian12-hip-radeon:
+t:debian13-hip-radeon:
     extends:
-        - .debian12_hip_radeon
+        - .debian13_hip_radeon
         - .cmake_test_linux_release
-        - .linux_x86_64_tags_rocm5.2
+        - .linux_x86_64_tags_rocm5.7
         - .run_dependent
         - .needs_centos7_x86_64
     variables:
@@ -647,27 +647,27 @@ b:fedora43-makefiles-symlinked:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-b:debian12-makefiles-inplace:
+b:debian13-makefiles-inplace:
     extends:
-        - .debian12_makefiles_inplace
+        - .debian13_makefiles_inplace
         - .cmake_build_linux_standalone
         - .linux_x86_64_tags
         - .run_manually
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-b:debian12-extdeps:
+b:debian13-extdeps:
     extends:
-        - .debian12_extdeps
+        - .debian13_extdeps
         - .cmake_build_linux_standalone
         - .linux_x86_64_tags
         - .run_manually
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-b:debian12-aarch64-extdeps:
+b:debian13-aarch64-extdeps:
     extends:
-        - .debian12_aarch64_extdeps
+        - .debian13_aarch64_extdeps
         - .cmake_build_linux_standalone
         - .linux_aarch64_tags
         - .run_manually

+ 0 - 0
.gitlab/ci/configure_debian12_aarch64_extdeps.cmake → .gitlab/ci/configure_debian13_aarch64_extdeps.cmake


+ 0 - 0
.gitlab/ci/configure_debian12_aarch64_ninja.cmake → .gitlab/ci/configure_debian13_aarch64_ninja.cmake


+ 0 - 0
.gitlab/ci/configure_debian12_extdeps.cmake → .gitlab/ci/configure_debian13_extdeps.cmake


+ 0 - 0
.gitlab/ci/configure_debian12_hip_radeon.cmake → .gitlab/ci/configure_debian13_hip_radeon.cmake


+ 1 - 1
.gitlab/ci/configure_debian12_iwyu.cmake → .gitlab/ci/configure_debian13_iwyu.cmake

@@ -2,6 +2,6 @@ set(CMake_RUN_IWYU ON CACHE BOOL "")
 set(CMake_IWYU_OPTIONS "-DCMAKE_IWYU_FORWARD_STD_HASH" CACHE STRING "")
 # Uncomment to diagnose IWYU problems as needed.
 #set(CMake_IWYU_VERBOSE ON CACHE BOOL "")
-set(IWYU_COMMAND "/usr/bin/include-what-you-use-15" CACHE FILEPATH "")
+set(IWYU_COMMAND "/usr/bin/include-what-you-use-19" CACHE FILEPATH "")
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")

+ 0 - 0
.gitlab/ci/configure_debian12_makefiles_clang.cmake → .gitlab/ci/configure_debian13_makefiles_clang.cmake


+ 0 - 0
.gitlab/ci/configure_debian12_makefiles_inplace.cmake → .gitlab/ci/configure_debian13_makefiles_inplace.cmake


+ 1 - 1
.gitlab/ci/configure_debian12_ninja.cmake → .gitlab/ci/configure_debian13_ninja.cmake

@@ -1,4 +1,4 @@
 set(CMake_TEST_ASM_NASM "ON" CACHE BOOL "")
 
-include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_debian13_ninja_common.cmake")
 set(CMake_TEST_UseSWIG "ON" CACHE BOOL "")

+ 0 - 0
.gitlab/ci/configure_debian12_ninja_clang.cmake → .gitlab/ci/configure_debian13_ninja_clang.cmake


+ 1 - 1
.gitlab/ci/configure_debian12_ninja_common.cmake → .gitlab/ci/configure_debian13_ninja_common.cmake

@@ -90,7 +90,7 @@ set(CMake_TEST_FindPython3 "ON" CACHE BOOL "")
 set(CMake_TEST_FindPython3_IronPython "ON" CACHE BOOL "")
 set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "")
 set(CMake_TEST_FindRuby "ON" CACHE BOOL "")
-#set(CMake_TEST_FindRuby_RBENV "ON" CACHE BOOL "") # fails because system and rbenv versions are same
+set(CMake_TEST_FindRuby_RBENV "ON" CACHE BOOL "")
 set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "")
 set(CMake_TEST_FindSDL "ON" CACHE BOOL "")
 set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "")

+ 1 - 1
.gitlab/ci/configure_debian12_ninja_multi_symlinked.cmake → .gitlab/ci/configure_debian13_ninja_multi_symlinked.cmake

@@ -3,5 +3,5 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
 endif()
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake")
-include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_debian13_ninja_common.cmake")
 set(CMake_TEST_UseSWIG "OFF" CACHE BOOL "")

+ 1 - 1
.gitlab/ci/docker/debian12-aarch64/Dockerfile → .gitlab/ci/docker/debian13-aarch64/Dockerfile

@@ -1,6 +1,6 @@
 # syntax=docker/dockerfile:1
 
-ARG BASE_IMAGE=arm64v8/debian:12
+ARG BASE_IMAGE=arm64v8/debian:13
 
 FROM ${BASE_IMAGE} AS cuda-keyring
 ADD https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/cuda-keyring_1.1-1_all.deb /root/

+ 3 - 3
.gitlab/ci/docker/debian12-aarch64/deps_packages.lst → .gitlab/ci/docker/debian13-aarch64/deps_packages.lst

@@ -20,7 +20,7 @@ libzstd-dev
 zlib1g-dev
 
 # Install iwyu runtime deps.
-clang-15
+clang-19
 libncurses6
 
 # Tools needed for the test suite.
@@ -79,7 +79,7 @@ libopenal-dev
 libopenmpi-dev openmpi-bin
 libosp-dev
 libpng-dev
-libpq-dev postgresql-server-dev-15
+libpq-dev postgresql-server-dev-17
 libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc
 libsdl1.2-dev
 libsqlite3-dev
@@ -91,7 +91,7 @@ libxalan-c-dev
 libxerces-c-dev
 libxml2-dev libxml2-utils
 libxslt-dev xsltproc
-openjdk-17-jdk
+openjdk-25-jdk
 python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv
 qtbase5-dev qtbase5-dev-tools
 ruby ruby-dev

+ 0 - 0
.gitlab/ci/docker/debian12-aarch64/docker-clean → .gitlab/ci/docker/debian13-aarch64/docker-clean


+ 0 - 0
.gitlab/ci/docker/debian12-aarch64/dpkg-exclude → .gitlab/ci/docker/debian13-aarch64/dpkg-exclude


+ 0 - 0
.gitlab/ci/docker/debian12-aarch64/install_deps.sh → .gitlab/ci/docker/debian13-aarch64/install_deps.sh


+ 2 - 2
.gitlab/ci/docker/debian12-x86_64/Dockerfile → .gitlab/ci/docker/debian13-x86_64/Dockerfile

@@ -1,6 +1,6 @@
 # syntax=docker/dockerfile:1
 
-ARG BASE_IMAGE=debian:12
+ARG BASE_IMAGE=debian:13
 
 FROM ${BASE_IMAGE} AS apt-cache
 # Populate APT cache w/ the fresh metadata and prefetch packages.
@@ -58,7 +58,7 @@ RUN --mount=type=bind,source=install_deps.sh,target=/root/install_deps.sh \
 
 RUN --mount=type=bind,from=iwyu-build,source=/root,target=/root \
     tar -C / -xf /root/iwyu.tar \
- && ln -s /usr/lib/llvm-15/bin/include-what-you-use /usr/bin/include-what-you-use-15
+ && ln -s /usr/lib/llvm-19/bin/include-what-you-use /usr/bin/include-what-you-use-19
 
 RUN --mount=type=bind,from=rvm-build,source=/root,target=/root \
     tar -C /usr/local -xf /root/rvm.tar

+ 3 - 6
.gitlab/ci/docker/debian12-x86_64/deps_packages.lst → .gitlab/ci/docker/debian13-x86_64/deps_packages.lst

@@ -20,7 +20,7 @@ libzstd-dev
 zlib1g-dev
 
 # Install iwyu runtime deps.
-clang-15
+clang-19
 libncurses6
 
 # Tools needed for the test suite.
@@ -38,9 +38,6 @@ nasm
 # Install HIP language toolchain.
 hipcc
 
-# Install swift runtime deps.
-libncurses5
-
 # Install IAR compiler package dependencies.
 libusb-1.0-0
 udev
@@ -90,7 +87,7 @@ libopenal-dev
 libopenmpi-dev openmpi-bin
 libosp-dev
 libpng-dev
-libpq-dev postgresql-server-dev-15
+libpq-dev postgresql-server-dev-17
 libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc
 libsdl1.2-dev
 libsqlite3-dev
@@ -102,7 +99,7 @@ libxalan-c-dev
 libxerces-c-dev
 libxml2-dev libxml2-utils
 libxslt-dev xsltproc
-openjdk-17-jdk
+openjdk-25-jdk
 python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv
 qtbase5-dev qtbase5-dev-tools
 rbenv ruby-build

+ 0 - 0
.gitlab/ci/docker/debian12-x86_64/docker-clean → .gitlab/ci/docker/debian13-x86_64/docker-clean


+ 0 - 0
.gitlab/ci/docker/debian12-x86_64/dpkg-exclude → .gitlab/ci/docker/debian13-x86_64/dpkg-exclude


+ 0 - 0
.gitlab/ci/docker/debian12-x86_64/install_deps.sh → .gitlab/ci/docker/debian13-x86_64/install_deps.sh


+ 1 - 1
.gitlab/ci/docker/debian12-x86_64/install_iwyu.sh → .gitlab/ci/docker/debian13-x86_64/install_iwyu.sh

@@ -8,7 +8,7 @@ apt-get install -y $(grep '^[^#]\+$' /root/iwyu_packages.lst)
 cd /root
 git clone "https://github.com/include-what-you-use/include-what-you-use.git"
 cd include-what-you-use
-readonly llvm_version="$( clang-15 --version | head -n1 | cut -d' ' -f4 | cut -d. -f-1 )"
+readonly llvm_version="$( clang-19 --version | head -n1 | cut -d' ' -f4 | cut -d. -f-1 )"
 git checkout "clang_$llvm_version"
 mkdir build
 cd build

+ 0 - 0
.gitlab/ci/docker/debian12-x86_64/install_rvm.sh → .gitlab/ci/docker/debian13-x86_64/install_rvm.sh


+ 3 - 3
.gitlab/ci/docker/debian12-x86_64/iwyu_packages.lst → .gitlab/ci/docker/debian13-x86_64/iwyu_packages.lst

@@ -1,7 +1,7 @@
 # Install development tools.
-clang-15
-libclang-15-dev
-llvm-15-dev
+clang-19
+libclang-19-dev
+llvm-19-dev
 libz-dev
 g++
 cmake

+ 1 - 1
.gitlab/ci/docker/debian12-x86_64/rvm_packages.lst → .gitlab/ci/docker/debian13-x86_64/rvm_packages.lst

@@ -11,7 +11,7 @@ libc6-dev
 libffi-dev
 libgdbm-dev
 libgmp-dev
-libncurses5-dev
+libncurses-dev
 libreadline-dev
 libsqlite3-dev
 libssl-dev

+ 0 - 9
.gitlab/ci/env_debian12_hip_radeon.sh

@@ -1,9 +0,0 @@
-export HIPCXX=/usr/bin/clang++-15
-export HIPFLAGS='--rocm-path=/usr --rocm-device-lib-path=/usr/lib/x86_64-linux-gnu/amdgcn/bitcode'
-
-# FIXME(debian): Clang is supposed to automatically parse a HIP version file.
-# The ROCm installer places it at '$prefix/bin/.hipVersion', but the package
-# on Debian moves it to '$prefix/share/hip/version'.  llvm-toolchain package
-# version 15.0.7-4 has 'debian/patches/amdgpu/usr-search-paths.patch' for this,
-# but Debian 12 currently provides version 15.0.6-4 without the patch.
-export HIPFLAGS="$HIPFLAGS --hip-version=5.2"

+ 0 - 0
.gitlab/ci/env_debian12_aarch64_extdeps.sh → .gitlab/ci/env_debian13_aarch64_extdeps.sh


+ 0 - 0
.gitlab/ci/env_debian12_extdeps.sh → .gitlab/ci/env_debian13_extdeps.sh


+ 1 - 0
.gitlab/ci/env_debian13_hip_radeon.sh

@@ -0,0 +1 @@
+export HIPCXX=/usr/bin/clang++-17

+ 2 - 2
.gitlab/ci/env_debian12_ninja_clang.sh → .gitlab/ci/env_debian13_makefiles_clang.sh

@@ -4,5 +4,5 @@ if test "$CMAKE_CI_NIGHTLY" = "true"; then
   source .gitlab/ci/emsdk-env.sh
 fi
 
-export CC=/usr/bin/clang-15
-export CXX=/usr/bin/clang++-15
+export CC=/usr/bin/clang-19
+export CXX=/usr/bin/clang++-19

+ 0 - 0
.gitlab/ci/env_debian12_ninja.sh → .gitlab/ci/env_debian13_ninja.sh


+ 2 - 2
.gitlab/ci/env_debian12_makefiles_clang.sh → .gitlab/ci/env_debian13_ninja_clang.sh

@@ -4,5 +4,5 @@ if test "$CMAKE_CI_NIGHTLY" = "true"; then
   source .gitlab/ci/emsdk-env.sh
 fi
 
-export CC=/usr/bin/clang-15
-export CXX=/usr/bin/clang++-15
+export CC=/usr/bin/clang-19
+export CXX=/usr/bin/clang++-19

+ 0 - 0
.gitlab/ci/env_debian12_ninja_multi_symlinked.sh → .gitlab/ci/env_debian13_ninja_multi_symlinked.sh


+ 4 - 4
.gitlab/ci/swift-env.sh

@@ -1,7 +1,7 @@
-curl -L -O "https://download.swift.org/swift-5.7.1-release/ubuntu1804/swift-5.7.1-RELEASE/swift-5.7.1-RELEASE-ubuntu18.04.tar.gz"
-echo '2b30f9efc969d9e96f0836d0871130dffb369822a3823ee6f3db44c29c1698e3  swift-5.7.1-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum
+curl -L -O "https://download.swift.org/swift-6.2.1-release/debian12/swift-6.2.1-RELEASE/swift-6.2.1-RELEASE-debian12.tar.gz"
+echo 'd6405e4fb7f092cbb9973a892ce8410837b4335f67d95bf8607baef1f69939e4  swift-6.2.1-RELEASE-debian12.tar.gz' > swift.sha256sum
 sha256sum --check swift.sha256sum
 mkdir /opt/swift
-tar xzf swift-5.7.1-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2
-rm swift-5.7.1-RELEASE-ubuntu18.04.tar.gz swift.sha256sum
+tar xzf swift-6.2.1-RELEASE-debian12.tar.gz -C /opt/swift --strip-components=2
+rm swift-6.2.1-RELEASE-debian12.tar.gz swift.sha256sum
 export SWIFTC="/opt/swift/bin/swiftc"

+ 3 - 3
.gitlab/ci/ticlang.sh

@@ -5,9 +5,9 @@ set -e
 case "$(uname -s)-$(uname -m)" in
     Linux-x86_64)
         shatool="sha256sum"
-        sha256sum="c69ac58e403b82eac1c407cc67b35fab5d95c5d8db75b019095f9412aacff27d"
-        filename="ti_cgt_armllvm_3.2.1.LTS_linux-x64_installer.bin"
-        dirname="ti-cgt-armllvm_3.2.1.LTS"
+        sha256sum="98c60ecc259a07a54be6fcc0f55990332f493bfe5dad460c0ba83963f5dcb06f"
+        filename="ti_cgt_armllvm_4.0.4.LTS_linux-x64_installer.bin"
+        dirname="ti-cgt-armllvm_4.0.4.LTS"
         ;;
     *)
         echo "Unrecognized platform $(uname -s)-$(uname -m)"

+ 36 - 36
.gitlab/os-linux.yml

@@ -58,23 +58,23 @@
 
 ### Debian
 
-.debian12:
-    image: "kitware/cmake:ci-debian12-x86_64-2025-03-31"
+.debian13:
+    image: "kitware/cmake:ci-debian13-x86_64-2025-11-11"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
         CMAKE_ARCH: x86_64
 
-.debian12_iwyu:
-    extends: .debian12
+.debian13_iwyu:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_iwyu
+        CMAKE_CONFIGURATION: debian13_iwyu
         CTEST_NO_WARNINGS_ALLOWED: 1
         CMAKE_CI_NO_INSTALL: 1
 
-.debian12_aarch64:
-    image: "kitware/cmake:ci-debian12-aarch64-2025-03-31"
+.debian13_aarch64:
+    image: "kitware/cmake:ci-debian13-aarch64-2025-11-11"
 
     variables:
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -169,54 +169,54 @@
 
 #### Build and test
 
-.debian12_ninja:
-    extends: .debian12
+.debian13_ninja:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_ninja
+        CMAKE_CONFIGURATION: debian13_ninja
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.debian12_aarch64_ninja:
-    extends: .debian12_aarch64
+.debian13_aarch64_ninja:
+    extends: .debian13_aarch64
 
     variables:
-        CMAKE_CONFIGURATION: debian12_aarch64_ninja
+        CMAKE_CONFIGURATION: debian13_aarch64_ninja
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.debian12_makefiles_inplace:
-    extends: .debian12
+.debian13_makefiles_inplace:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_makefiles_inplace
+        CMAKE_CONFIGURATION: debian13_makefiles_inplace
         CMAKE_GENERATOR: "Unix Makefiles"
         CMAKE_CI_BOOTSTRAP: 1
         CMAKE_CI_INPLACE: 1
         CMAKE_CI_NO_INSTALL: 1
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.debian12_ninja_multi_symlinked:
-    extends: .debian12
+.debian13_ninja_multi_symlinked:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_ninja_multi_symlinked
+        CMAKE_CONFIGURATION: debian13_ninja_multi_symlinked
         CMAKE_GENERATOR: "Ninja Multi-Config"
         CTEST_NO_WARNINGS_ALLOWED: 1
         CMAKE_CI_IN_SYMLINK_TREE: 1
         CMAKE_CI_BUILD_DIR: "real_work/work/build"
 
-.debian12_extdeps:
-    extends: .debian12
+.debian13_extdeps:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_extdeps
+        CMAKE_CONFIGURATION: debian13_extdeps
         CMAKE_CI_BUILD_TYPE: Release
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.debian12_aarch64_extdeps:
-    extends: .debian12_aarch64
+.debian13_aarch64_extdeps:
+    extends: .debian13_aarch64
 
     variables:
-        CMAKE_CONFIGURATION: debian12_aarch64_extdeps
+        CMAKE_CONFIGURATION: debian13_aarch64_extdeps
         CMAKE_CI_BUILD_TYPE: Release
         CTEST_NO_WARNINGS_ALLOWED: 1
 
@@ -272,18 +272,18 @@
 
 ### Clang Compiler
 
-.debian12_makefiles_clang:
-    extends: .debian12
+.debian13_makefiles_clang:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_makefiles_clang
+        CMAKE_CONFIGURATION: debian13_makefiles_clang
         CMAKE_GENERATOR: "Unix Makefiles"
 
-.debian12_ninja_clang:
-    extends: .debian12
+.debian13_ninja_clang:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_ninja_clang
+        CMAKE_CONFIGURATION: debian13_ninja_clang
 
 .fedora43_makefiles_clang:
     extends: .fedora43
@@ -563,11 +563,11 @@
         CMAKE_CONFIGURATION: hip6.3_radeon
         CMAKE_GENERATOR: "Ninja Multi-Config"
 
-.debian12_hip_radeon:
-    extends: .debian12
+.debian13_hip_radeon:
+    extends: .debian13
 
     variables:
-        CMAKE_CONFIGURATION: debian12_hip_radeon
+        CMAKE_CONFIGURATION: debian13_hip_radeon
         CTEST_LABELS: "HIP"
 
 .fedora43_hip_radeon:
@@ -689,11 +689,11 @@
         - docker
         - linux-x86_64
 
-.linux_x86_64_tags_rocm5.2:
+.linux_x86_64_tags_rocm5.7:
     tags:
         - cmake
         - radeon
-        - rocm-5.2
+        - rocm-5.7
         - docker
         - linux-x86_64
 

+ 21 - 15
Modules/FindImageMagick.cmake

@@ -298,23 +298,29 @@ function(_ImageMagick_GetVersion)
     )
 
     foreach(dir IN LISTS ImageMagick_INCLUDE_DIRS)
-      if(EXISTS ${dir}/magick/version.h)
-        file(STRINGS "${dir}/magick/version.h" results REGEX "${regex}")
-
-        foreach(line ${results})
-          if(line MATCHES "${regex}")
-            if(DEFINED version)
-              string(APPEND version "${CMAKE_MATCH_2}")
-            else()
-              set(version "${CMAKE_MATCH_2}")
+      foreach(subdir IN ITEMS MagickCore magick)
+        if(EXISTS ${dir}/${subdir}/version.h)
+          file(STRINGS "${dir}/${subdir}/version.h" results REGEX "${regex}")
+
+          foreach(line ${results})
+            if(line MATCHES "${regex}")
+              if(DEFINED version)
+                string(APPEND version "${CMAKE_MATCH_2}")
+              else()
+                set(version "${CMAKE_MATCH_2}")
+              endif()
+
+              if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum")
+                break()
+              endif()
             endif()
+          endforeach()
+        endif()
 
-            if(CMAKE_MATCH_1 STREQUAL "MagickLibAddendum")
-              break()
-            endif()
-          endif()
-        endforeach()
-      endif()
+        if(DEFINED version)
+          break()
+        endif()
+      endforeach()
 
       if(DEFINED version)
         break()

+ 5 - 0
Modules/FindJNI.cmake

@@ -385,6 +385,11 @@ set(_JNI_JAVA_DIRECTORIES_BASE
   # Arch Linux specific paths for default JVM
   /usr/lib/jvm/default
   # Ubuntu specific paths for default JVM
+  /usr/lib/jvm/java-26-openjdk-{libarch}
+  /usr/lib/jvm/java-25-openjdk-{libarch}    # Ubuntu 24.04 LTS
+  /usr/lib/jvm/java-24-openjdk-{libarch}
+  /usr/lib/jvm/java-23-openjdk-{libarch}
+  /usr/lib/jvm/java-22-openjdk-{libarch}
   /usr/lib/jvm/java-21-openjdk-{libarch}    # Ubuntu 23.04
   /usr/lib/jvm/java-20-openjdk-{libarch}    # Ubuntu 22.10
   /usr/lib/jvm/java-19-openjdk-{libarch}    # Ubuntu 22.04 LTS

+ 2 - 0
Modules/FindPostgreSQL.cmake

@@ -131,6 +131,7 @@ indicated by preprocessor macros in the ``libpq-fe.h`` header (e.g.
 # In Windows the default installation of PostgreSQL uses that as part of the path.
 # E.g C:\Program Files\PostgreSQL\8.4.
 # Currently, the following version numbers are known to this module:
+# "17"
 # "16" "15" "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0"
 #
 # To use this variable just do something like this:
@@ -180,6 +181,7 @@ set(PostgreSQL_ROOT_DIR_MESSAGE "Set the PostgreSQL_ROOT system variable to wher
 
 
 set(PostgreSQL_KNOWN_VERSIONS ${PostgreSQL_ADDITIONAL_VERSIONS}
+    "17"
     "16" "15" "14" "13" "12" "11" "10" "9.6" "9.5" "9.4" "9.3" "9.2" "9.1" "9.0" "8.4" "8.3" "8.2" "8.1" "8.0")
 
 # Define additional search paths for root directories.

+ 6 - 0
Source/cmDocumentationFormatter.cxx

@@ -181,3 +181,9 @@ void cmDocumentationFormatter::PrintSection(
 
   this->TextIndent = savedIndent;
 }
+
+void cmDocumentationFormatter::PrintFormatted(std::ostream& os,
+                                              std::string const& text) const
+{
+  os << this->Format(text);
+}

+ 1 - 4
Source/cmDocumentationFormatter.h

@@ -18,10 +18,7 @@ class cmDocumentationFormatter
 public:
   std::string Format(cm::string_view text) const;
   void PrintSection(std::ostream& os, cmDocumentationSection const& section);
-  void PrintFormatted(std::ostream& os, std::string const& text) const
-  {
-    os << this->Format(text);
-  }
+  void PrintFormatted(std::ostream& os, std::string const& text) const;
   void SetIndent(std::size_t indent) { this->TextIndent = indent; }
 
   static constexpr std::size_t TEXT_WIDTH = 77u;

+ 3 - 0
Tests/FindImageMagick/Test/CMakeLists.txt

@@ -14,4 +14,7 @@ add_test(NAME test_magick++ COMMAND test_magick++)
 
 add_executable(test_magick_wand main_magick_wand.c)
 target_link_libraries(test_magick_wand ImageMagick::MagickWand)
+if(ImageMagick_VERSION VERSION_GREATER_EQUAL 7)
+  target_compile_definitions(test_magick_wand PRIVATE TEST_IMAGE_MAGICK_7)
+endif()
 add_test(NAME test_magick_wand COMMAND test_magick_wand)

+ 5 - 1
Tests/FindImageMagick/Test/main_magick_wand.c

@@ -1,4 +1,8 @@
-#include <wand/MagickWand.h>
+#ifdef TEST_IMAGE_MAGICK_7
+#  include <MagickWand/MagickWand.h>
+#else
+#  include <wand/MagickWand.h>
+#endif
 
 int main(void)
 {

+ 5 - 0
Tests/FindJNI/Minimal/CMakeLists.txt

@@ -6,6 +6,10 @@ set (CMAKE_CXX_VISIBILITY_PRESET hidden)
 find_package (JNI REQUIRED)
 find_package (Java REQUIRED COMPONENTS Runtime Development)
 
+if(Java_VERSION VERSION_GREATER_EQUAL 24)
+  set(enable_native_access --enable-native-access=ALL-UNNAMED)
+endif()
+
 add_library (MinimalTgt MODULE minimal.cxx)
 target_link_libraries (MinimalTgt PRIVATE JNI::JNI)
 
@@ -24,6 +28,7 @@ foreach (test MinimalTgt MinimalVar)
   add_test (NAME ${test} COMMAND ${Java_JAVA_EXECUTABLE}
     -cp ${TestMinimal_SOURCE_DIR}
     -Djava.library.path=$<TARGET_FILE_DIR:${test}>
+    ${enable_native_access}
     ${test}
   )