From a8b7cad54bd42493f27ba6c88050427e643640bf Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Wed, 19 Mar 2025 14:48:47 +0100
Subject: [PATCH] Fix several CMake warnings

The exec_program fuction is deprecated use execute_process instead.
Use the FindBoost config file which is installed by Boost instead of the CMake
module.
Fix one cmake_minimum_required version by defining also a maximum version.
---
 CMakeLists.txt                                    |  6 ++++--
 cmake/modules/CheckCompiler.cmake                 |  5 ++++-
 cmake/modules/DownloadProject.CMakeLists.cmake.in |  2 +-
 cmake/modules/FairMacros.cmake                    | 12 ++++++------
 cmake/modules/FindSSE.cmake                       |  8 ++++++--
 external/InstallHal.cmake                         |  2 +-
 6 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cae01e8ee3..40dac90b1e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -142,7 +142,9 @@ endif()
 
 
 #Searching for Boost Package
-find_package(Boost COMPONENTS serialization regex filesystem log log_setup container program_options thread iostreams system)
+find_package(Boost CONFIG
+             COMPONENTS serialization regex filesystem log log_setup container program_options thread iostreams system
+            )
 if(Boost_FOUND)
   list(APPEND packages Boost)
 endif()
@@ -246,7 +248,7 @@ If(DEFINED ENV{OMP_NUM_THREADS} )
 endif()
 
 set(CBMLIBDIR ${CMAKE_BINARY_DIR}/lib)
-set(LD_LIBRARY_PATH  ${CBMLIBDIR} ${Boost_LIBRARY_DIRS} ${LD_LIBRARY_PATH} ${FAIRROOT_LIBRARY_DIR})
+set(LD_LIBRARY_PATH  ${CBMLIBDIR} ${SIMPATH}/lib ${LD_LIBRARY_PATH} ${FAIRROOT_LIBRARY_DIR})
 set(ROOT_INCLUDE_PATH ${FAIRROOT_INCLUDE_DIR})
 
 # Recurse into the given subdirectories.  This does not actually
diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake
index e243944398..b5a5ce24b0 100644
--- a/cmake/modules/CheckCompiler.cmake
+++ b/cmake/modules/CheckCompiler.cmake
@@ -187,7 +187,10 @@ endif (CMAKE_SYSTEM_NAME MATCHES Linux)
 
 
 if (CMAKE_SYSTEM_NAME MATCHES Darwin)
-   EXEC_PROGRAM("sw_vers -productVersion | cut -d . -f 1-2" OUTPUT_VARIABLE MAC_OS_VERSION)
+   execute_process(COMMAND sw_vers -productVersion
+                   COMMAND cut -d . -f 1-2
+                   OUTPUT_VARIABLE MAC_OS_VERSION
+                  )
    MESSAGE("-- Found a Mac OS X System ${MAC_OS_VERSION}")
    if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
       MESSAGE("-- Found GNU compiler collection")
diff --git a/cmake/modules/DownloadProject.CMakeLists.cmake.in b/cmake/modules/DownloadProject.CMakeLists.cmake.in
index f40aaf67fd..7995400f83 100644
--- a/cmake/modules/DownloadProject.CMakeLists.cmake.in
+++ b/cmake/modules/DownloadProject.CMakeLists.cmake.in
@@ -1,7 +1,7 @@
 # Distributed under the OSI-approved MIT License.  See accompanying
 # file LICENSE or https://github.com/Crascit/DownloadProject for details.
 
-cmake_minimum_required(VERSION 2.8.2)
+cmake_minimum_required(VERSION 2.8.2...3.31)
 
 project(${DL_ARGS_PROJ}-download NONE)
 
diff --git a/cmake/modules/FairMacros.cmake b/cmake/modules/FairMacros.cmake
index 4dc7871bbc..1468a536d3 100644
--- a/cmake/modules/FairMacros.cmake
+++ b/cmake/modules/FairMacros.cmake
@@ -278,8 +278,9 @@ MACRO (GENERATE_TEST_SCRIPT SCRIPT_FULL_NAME)
   Write_Geant4Data_Variables_sh()
   configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/set_env.sh.in
                  ${new_path}/${shell_script_name}
+#                 FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ
                 )
-  EXEC_PROGRAM(/bin/chmod ARGS "u+x  ${new_path}/${shell_script_name}" OUTPUT_VARIABLE tmp)
+  execute_process(COMMAND /bin/chmod u+x  ${new_path}/${shell_script_name})
 ENDMACRO (GENERATE_TEST_SCRIPT)
 ################################################################################
 
@@ -299,7 +300,6 @@ Macro(Generate_Exe_Script _Path _ExeName)
     set(new_path ${_Path})
   endif()
 
-
 #  Message("PATH: ${_Path}")
 #  Message("ExeName: ${_ExeName}")
 #  Message("shell_script_name: ${shell_script_name}")
@@ -308,10 +308,10 @@ Macro(Generate_Exe_Script _Path _ExeName)
   set(my_exe_name ${EXECUTABLE_OUTPUT_PATH}/${_ExeName})
   Write_Geant4Data_Variables_sh()
   configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/run_binary.sh.in
-                   ${new_path}/${shell_script_name}
-                  )
-
-  EXEC_PROGRAM(/bin/chmod ARGS "u+x  ${new_path}/${shell_script_name}" OUTPUT_VARIABLE tmp )
+                 ${new_path}/${shell_script_name}
+#                 FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ
+                )
+  execute_process(COMMAND /bin/chmod u+x  ${new_path}/${shell_script_name})
 
 EndMacro(Generate_Exe_Script)
 ################################################################################
diff --git a/cmake/modules/FindSSE.cmake b/cmake/modules/FindSSE.cmake
index abf06ff4d7..6697f72670 100644
--- a/cmake/modules/FindSSE.cmake
+++ b/cmake/modules/FindSSE.cmake
@@ -9,11 +9,15 @@
 # the project is compiled.
 
 If(CMAKE_SYSTEM_NAME MATCHES Linux)
-  Exec_Program(cat ARGS "/proc/cpuinfo" OUTPUT_VARIABLE CPUINFO)
+  execute_process(COMMAND cat /proc/cpuinfo
+                  OUTPUT_VARIABLE CPUINFO
+                 )
   String(REGEX REPLACE "^.*(sse).*$" "\\1" SSE_THERE "${CPUINFO}")
   String(COMPARE EQUAL "sse" "${SSE_THERE}" SSE_TRUE)
 ElseIf(CMAKE_SYSTEM_NAME MATCHES Darwin)
-  Exec_Program("/usr/sbin/sysctl -n machdep.cpu.features" OUTPUT_VARIABLE CPUINFO)
+  execute_process(COMMAND /usr/sbin/sysctl -n machdep.cpu.features
+                  OUTPUT_VARIABLE CPUINFO
+                 )
   String(REGEX REPLACE "^.*(SSE).*$" "\\1" SSE_THERE "${CPUINFO}")
   String(COMPARE EQUAL "SSE" "${SSE_THERE}" SSE_TRUE)
 EndIf(CMAKE_SYSTEM_NAME MATCHES Linux)
diff --git a/external/InstallHal.cmake b/external/InstallHal.cmake
index 2ba6f2836c..e4cf62ada2 100644
--- a/external/InstallHal.cmake
+++ b/external/InstallHal.cmake
@@ -25,7 +25,7 @@ Else()
   Set(EXTRA_ARGS "")
 EndIf()
 execute_process(COMMAND gsl-config --prefix OUTPUT_VARIABLE GSLPATH OUTPUT_STRIP_TRAILING_WHITESPACE)
-message(WARNING "GSL PATH ${GSLPATH}")
+#message(WARNING "GSL PATH ${GSLPATH}")
 
 ExternalProject_Add(HAL
   BUILD_IN_SOURCE 0
-- 
GitLab