File cmake-dependencies.patch of Package cmake

From 16cc3e25d400e043a88297e375590420658bab19 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Thu, 11 Dec 2025 14:23:37 -0500
Subject: [PATCH] Utilities: Select bundled or external dependencies very early

---
 CMakeLists.txt                           | 157 +++++++++++------------
 Source/Modules/CMakeBuildUtilities.cmake |   4 -
 2 files changed, 75 insertions(+), 86 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cab0fcba385..ef6e3014884 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,6 +44,81 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE)
   endif()
 
   set(CMake_BIN_DIR ${CMake_BINARY_DIR}/bin)
+
+  include(CMakeDependentOption)
+
+  # Allow the user to enable/disable all system utility library options by
+  # defining CMAKE_USE_SYSTEM_LIBRARIES or CMAKE_USE_SYSTEM_LIBRARY_${util}.
+  set(UTILITIES BZIP2 CPPDAP CURL EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBRHASH LIBUV NGHTTP2 ZLIB ZSTD)
+  foreach(util IN LISTS UTILITIES)
+    if(NOT DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util}
+        AND DEFINED CMAKE_USE_SYSTEM_LIBRARIES)
+      set(CMAKE_USE_SYSTEM_LIBRARY_${util} "${CMAKE_USE_SYSTEM_LIBRARIES}")
+    endif()
+    if(DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util})
+      if(CMAKE_USE_SYSTEM_LIBRARY_${util})
+        set(CMAKE_USE_SYSTEM_LIBRARY_${util} ON)
+      else()
+        set(CMAKE_USE_SYSTEM_LIBRARY_${util} OFF)
+      endif()
+      if(CMAKE_BOOTSTRAP)
+        unset(CMAKE_USE_SYSTEM_LIBRARY_${util} CACHE)
+      endif()
+      string(TOLOWER "${util}" lutil)
+      set(CMAKE_USE_SYSTEM_${util} "${CMAKE_USE_SYSTEM_LIBRARY_${util}}"
+        CACHE BOOL "Use system-installed ${lutil}" FORCE)
+    elseif(util STREQUAL "CURL" AND APPLE)
+      # macOS provides a curl with backends configured by Apple.
+      set(CMAKE_USE_SYSTEM_LIBRARY_${util} ON)
+    else()
+      set(CMAKE_USE_SYSTEM_LIBRARY_${util} OFF)
+    endif()
+  endforeach()
+  if(CMAKE_BOOTSTRAP)
+    unset(CMAKE_USE_SYSTEM_LIBRARIES CACHE)
+  endif()
+
+  # Optionally use system utility libraries.
+  option(CMAKE_USE_SYSTEM_LIBARCHIVE "Use system-installed libarchive" "${CMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE}")
+  if(CMake_ENABLE_DEBUGGER)
+    option(CMAKE_USE_SYSTEM_CPPDAP "Use system-installed cppdap" "${CMAKE_USE_SYSTEM_LIBRARY_CPPDAP}")
+  endif()
+  option(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" "${CMAKE_USE_SYSTEM_LIBRARY_CURL}")
+  option(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" "${CMAKE_USE_SYSTEM_LIBRARY_EXPAT}")
+  cmake_dependent_option(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib"
+    "${CMAKE_USE_SYSTEM_LIBRARY_ZLIB}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE;NOT CMAKE_USE_SYSTEM_CURL" ON)
+  cmake_dependent_option(CMAKE_USE_SYSTEM_BZIP2 "Use system-installed bzip2"
+    "${CMAKE_USE_SYSTEM_LIBRARY_BZIP2}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
+  cmake_dependent_option(CMAKE_USE_SYSTEM_ZSTD "Use system-installed zstd"
+    "${CMAKE_USE_SYSTEM_LIBRARY_ZSTD}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
+  cmake_dependent_option(CMAKE_USE_SYSTEM_LIBLZMA "Use system-installed liblzma"
+    "${CMAKE_USE_SYSTEM_LIBRARY_LIBLZMA}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
+  cmake_dependent_option(CMAKE_USE_SYSTEM_NGHTTP2 "Use system-installed nghttp2"
+    "${CMAKE_USE_SYSTEM_LIBRARY_NGHTTP2}" "NOT CMAKE_USE_SYSTEM_CURL" ON)
+  option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
+  cmake_dependent_option(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp"
+    "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}" "NOT CMAKE_USE_SYSTEM_CPPDAP" ON)
+  option(CMAKE_USE_SYSTEM_LIBRHASH "Use system-installed librhash" "${CMAKE_USE_SYSTEM_LIBRARY_LIBRHASH}")
+  option(CMAKE_USE_SYSTEM_LIBUV "Use system-installed libuv" "${CMAKE_USE_SYSTEM_LIBRARY_LIBUV}")
+
+  # For now use system KWIML only if explicitly requested rather
+  # than activating via the general system libs options.
+  option(CMAKE_USE_SYSTEM_KWIML "Use system-installed KWIML" OFF)
+  mark_as_advanced(CMAKE_USE_SYSTEM_KWIML)
+
+  # Mention to the user what system libraries are being used.
+  if(CMAKE_USE_SYSTEM_CURL)
+    # Avoid messaging about curl-only dependencies.
+    list(REMOVE_ITEM UTILITIES NGHTTP2)
+  endif()
+  foreach(util IN LISTS UTILITIES ITEMS KWIML)
+    if(CMAKE_USE_SYSTEM_${util})
+      message(STATUS "Using system-installed ${util}")
+    endif()
+  endforeach()
+
+  # Inform utility library header wrappers whether to use system versions.
+  configure_file(Utilities/cmThirdParty.h.in Utilities/cmThirdParty.h @ONLY)
 endif()
 
 if(CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL)
@@ -154,88 +229,6 @@ else()
   set(CMake_ENABLE_DEBUGGER 0)
 endif()
 
-#-----------------------------------------------------------------------
-# a macro to deal with system libraries, implemented as a macro
-# simply to improve readability of the main script
-#-----------------------------------------------------------------------
-macro(CMAKE_HANDLE_SYSTEM_LIBRARIES)
-  include(CMakeDependentOption)
-
-  # Allow the user to enable/disable all system utility library options by
-  # defining CMAKE_USE_SYSTEM_LIBRARIES or CMAKE_USE_SYSTEM_LIBRARY_${util}.
-  set(UTILITIES BZIP2 CPPDAP CURL EXPAT FORM JSONCPP LIBARCHIVE LIBLZMA LIBRHASH LIBUV NGHTTP2 ZLIB ZSTD)
-  foreach(util IN LISTS UTILITIES)
-    if(NOT DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util}
-        AND DEFINED CMAKE_USE_SYSTEM_LIBRARIES)
-      set(CMAKE_USE_SYSTEM_LIBRARY_${util} "${CMAKE_USE_SYSTEM_LIBRARIES}")
-    endif()
-    if(DEFINED CMAKE_USE_SYSTEM_LIBRARY_${util})
-      if(CMAKE_USE_SYSTEM_LIBRARY_${util})
-        set(CMAKE_USE_SYSTEM_LIBRARY_${util} ON)
-      else()
-        set(CMAKE_USE_SYSTEM_LIBRARY_${util} OFF)
-      endif()
-      if(CMAKE_BOOTSTRAP)
-        unset(CMAKE_USE_SYSTEM_LIBRARY_${util} CACHE)
-      endif()
-      string(TOLOWER "${util}" lutil)
-      set(CMAKE_USE_SYSTEM_${util} "${CMAKE_USE_SYSTEM_LIBRARY_${util}}"
-        CACHE BOOL "Use system-installed ${lutil}" FORCE)
-    elseif(util STREQUAL "CURL" AND APPLE)
-      # macOS provides a curl with backends configured by Apple.
-      set(CMAKE_USE_SYSTEM_LIBRARY_${util} ON)
-    else()
-      set(CMAKE_USE_SYSTEM_LIBRARY_${util} OFF)
-    endif()
-  endforeach()
-  if(CMAKE_BOOTSTRAP)
-    unset(CMAKE_USE_SYSTEM_LIBRARIES CACHE)
-  endif()
-
-  # Optionally use system utility libraries.
-  option(CMAKE_USE_SYSTEM_LIBARCHIVE "Use system-installed libarchive" "${CMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE}")
-  if(CMake_ENABLE_DEBUGGER)
-    option(CMAKE_USE_SYSTEM_CPPDAP "Use system-installed cppdap" "${CMAKE_USE_SYSTEM_LIBRARY_CPPDAP}")
-  endif()
-  option(CMAKE_USE_SYSTEM_CURL "Use system-installed curl" "${CMAKE_USE_SYSTEM_LIBRARY_CURL}")
-  option(CMAKE_USE_SYSTEM_EXPAT "Use system-installed expat" "${CMAKE_USE_SYSTEM_LIBRARY_EXPAT}")
-  cmake_dependent_option(CMAKE_USE_SYSTEM_ZLIB "Use system-installed zlib"
-    "${CMAKE_USE_SYSTEM_LIBRARY_ZLIB}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE;NOT CMAKE_USE_SYSTEM_CURL" ON)
-  cmake_dependent_option(CMAKE_USE_SYSTEM_BZIP2 "Use system-installed bzip2"
-    "${CMAKE_USE_SYSTEM_LIBRARY_BZIP2}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
-  cmake_dependent_option(CMAKE_USE_SYSTEM_ZSTD "Use system-installed zstd"
-    "${CMAKE_USE_SYSTEM_LIBRARY_ZSTD}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
-  cmake_dependent_option(CMAKE_USE_SYSTEM_LIBLZMA "Use system-installed liblzma"
-    "${CMAKE_USE_SYSTEM_LIBRARY_LIBLZMA}" "NOT CMAKE_USE_SYSTEM_LIBARCHIVE" ON)
-  cmake_dependent_option(CMAKE_USE_SYSTEM_NGHTTP2 "Use system-installed nghttp2"
-    "${CMAKE_USE_SYSTEM_LIBRARY_NGHTTP2}" "NOT CMAKE_USE_SYSTEM_CURL" ON)
-  option(CMAKE_USE_SYSTEM_FORM "Use system-installed libform" "${CMAKE_USE_SYSTEM_LIBRARY_FORM}")
-  cmake_dependent_option(CMAKE_USE_SYSTEM_JSONCPP "Use system-installed jsoncpp"
-    "${CMAKE_USE_SYSTEM_LIBRARY_JSONCPP}" "NOT CMAKE_USE_SYSTEM_CPPDAP" ON)
-  option(CMAKE_USE_SYSTEM_LIBRHASH "Use system-installed librhash" "${CMAKE_USE_SYSTEM_LIBRARY_LIBRHASH}")
-  option(CMAKE_USE_SYSTEM_LIBUV "Use system-installed libuv" "${CMAKE_USE_SYSTEM_LIBRARY_LIBUV}")
-
-  # For now use system KWIML only if explicitly requested rather
-  # than activating via the general system libs options.
-  option(CMAKE_USE_SYSTEM_KWIML "Use system-installed KWIML" OFF)
-  mark_as_advanced(CMAKE_USE_SYSTEM_KWIML)
-
-  # Mention to the user what system libraries are being used.
-  if(CMAKE_USE_SYSTEM_CURL)
-    # Avoid messaging about curl-only dependencies.
-    list(REMOVE_ITEM UTILITIES NGHTTP2)
-  endif()
-  foreach(util IN LISTS UTILITIES ITEMS KWIML)
-    if(CMAKE_USE_SYSTEM_${util})
-      message(STATUS "Using system-installed ${util}")
-    endif()
-  endforeach()
-
-  # Inform utility library header wrappers whether to use system versions.
-  configure_file(Utilities/cmThirdParty.h.in Utilities/cmThirdParty.h @ONLY)
-
-endmacro()
-
 #-----------------------------------------------------------------------
 # a macro to determine the generator and ctest executable to use
 # for testing. Simply to improve readability of the main script.
diff --git a/Source/Modules/CMakeBuildUtilities.cmake b/Source/Modules/CMakeBuildUtilities.cmake
index 5c21fff8d85..44cde84fb3a 100644
--- a/Source/Modules/CMakeBuildUtilities.cmake
+++ b/Source/Modules/CMakeBuildUtilities.cmake
@@ -78,10 +78,6 @@ endif()
 add_subdirectory(Utilities/std)
 CMAKE_SET_TARGET_FOLDER(cmstd "Utilities/std")
 
-# check for the use of system libraries versus builtin ones
-# (a macro defined in this file)
-CMAKE_HANDLE_SYSTEM_LIBRARIES()
-
 if(CMAKE_USE_SYSTEM_KWIML)
   find_package(KWIML 1.0)
   if(NOT KWIML_FOUND)
-- 
GitLab

openSUSE Build Service is sponsored by