From: Matthias Maier <tamiko@43-1.org>
Date: Tue, 29 Nov 2022 04:11:11 +0000 (-0600)
Subject: CMake: clean up setup_finalize.cmake and call before feature configuration
X-Git-Tag: v9.5.0-rc1~446^2~30
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=401c38a6fac72cf7cc7d6dde66ac7f89a63a2f36;p=dealii.git

CMake: clean up setup_finalize.cmake and call before feature configuration
---

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0a8d962a12..9f48e7076f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -111,6 +111,8 @@ foreach(_file ${_check_files})
   verbose_include(${_file})
 endforeach()
 
+verbose_include(${CMAKE_SOURCE_DIR}/cmake/setup_finalize.cmake)
+
 #
 # Feature configuration:
 #
@@ -120,12 +122,8 @@ foreach(_file ${_configure_files})
   verbose_include(${_file})
 endforeach()
 
-#
-# Finalize the configuration:
-#
 verbose_include(${CMAKE_SOURCE_DIR}/cmake/setup_cpack.cmake)
 verbose_include(${CMAKE_SOURCE_DIR}/cmake/setup_custom_targets.cmake)
-verbose_include(${CMAKE_SOURCE_DIR}/cmake/setup_finalize.cmake)
 verbose_include(${CMAKE_SOURCE_DIR}/cmake/setup_write_config.cmake)
 
 ########################################################################
diff --git a/cmake/setup_finalize.cmake b/cmake/setup_finalize.cmake
index 5f10a07523..090c262da7 100644
--- a/cmake/setup_finalize.cmake
+++ b/cmake/setup_finalize.cmake
@@ -50,104 +50,23 @@ foreach(_flag ${DEAL_II_REMOVED_FLAGS})
   endif()
 endforeach()
 
-#
-# Save base configuration into variables BASE_* for later use in
-# setup_write_config.cmake:
-#
-foreach(_suffix ${DEAL_II_STRING_SUFFIXES} ${DEAL_II_LIST_SUFFIXES})
-  set(BASE_${_suffix} ${DEAL_II_${_suffix}})
-endforeach()
-
-#
-# Register features:
-#
-foreach(_feature ${DEAL_II_FEATURES})
-  if(DEAL_II_WITH_${_feature})
-    filter_system_libraries(${_feature})
-    register_feature(${_feature})
-  endif()
-endforeach()
-
-#
-# Deduplicate entries one more time :-]
-#
-foreach(_suffix ${DEAL_II_LIST_SUFFIXES})
-  if(_suffix MATCHES "INCLUDE_DIRS$")
-    remove_duplicates(DEAL_II_${_suffix})
-  else()
-    remove_duplicates(DEAL_II_${_suffix} REVERSE)
-  endif()
-endforeach()
-
 #
 # Sanity check: Can we compile with the final setup?
 #
 
 foreach(build ${DEAL_II_BUILD_TYPES})
-
-  macro(_check_linker_flags)
-    check_compiler_setup(
-      "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}}"
-      "${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}"
-      DEAL_II_HAVE_USABLE_FLAGS_${build}
-      ${DEAL_II_LIBRARIES} ${DEAL_II_LIBRARIES_${build}}
-      )
-  endmacro()
-
-  macro(_drop_linker_flag _linker_flag _replacement_flag _variable)
-    message(STATUS
-      "Unable to compile a simple test program. "
-      "Trying to drop \"${_linker_flag}\" from the linker flags."
-      )
-    foreach(_flags
-        DEAL_II_LINKER_FLAGS DEAL_II_LINKER_FLAGS_${build}
-        BASE_LINKER_FLAGS BASE_LINKER_FLAGS_${build}
-        )
-      string(REPLACE "${_linker_flag}" "${_replacement_flag}"
-        ${_flags} "${${_flags}}"
-        )
-    endforeach()
-    set(${_variable} FALSE CACHE INTERNAL "" FORCE)
-    set(${_variable} FALSE)
-  endmacro()
-
-  _check_linker_flags()
-
-  if(NOT DEAL_II_HAVE_USABLE_FLAGS_${build} AND DEAL_II_COMPILER_HAS_FUSE_LD_LLD)
-    set(_replacement "")
-    if(DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
-      set(_replacement "-fuse-ld=gold")
-    endif()
-    _drop_linker_flag(
-      "-fuse-ld=lld" ${_replacement}
-      DEAL_II_COMPILER_HAS_FUSE_LD_LLD
-      )
-    _check_linker_flags()
-  endif()
-
-  if(NOT DEAL_II_HAVE_USABLE_FLAGS_${build} AND DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
-    _drop_linker_flag(
-      "-fuse-ld=gold" ""
-      DEAL_II_COMPILER_HAS_FUSE_LD_GOLD
-      )
-    _check_linker_flags()
-  endif()
-
-  if(NOT DEAL_II_HAVE_USABLE_FLAGS_${build})
-    message(FATAL_ERROR "
-  Configuration error: Cannot compile a test program with the final set of
-  compiler and linker flags:
-    CXX flags (${build}): ${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}}
-    LD flags  (${build}): ${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}
-    LIBRARIES (${build}): ${DEAL_II_LIBRARIES};${DEAL_II_LIBRARIES_${build}}
-  \n\n"
-      )
-  endif()
+  check_compiler_setup(
+    "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}}"
+    "${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}"
+    DEAL_II_HAVE_USABLE_FLAGS_${build}
+    ${DEAL_II_LIBRARIES} ${DEAL_II_LIBRARIES_${build}}
+    )
 endforeach()
 
 #
 # Clean up deal.IITargets.cmake in the build directory:
 #
+
 file(REMOVE
   ${CMAKE_BINARY_DIR}/${DEAL_II_PROJECT_CONFIG_RELDIR}/${DEAL_II_PROJECT_CONFIG_NAME}Targets.cmake
   )