From 6f18a19e312fe707adc5750ebaec6a0c15b56309 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20Gr=C3=BCninger?= <gruenich@dune-project.org>
Date: Sun, 18 Oct 2015 22:44:18 +0200
Subject: [PATCH] [SuiteSparse] Never set *_FOUND directly, use
 HANDLE_COMPONENT.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The naming scheme is kind of broken.

(cherry picked from commit 28c817404c015cc3c9e7674911e2634c70aa8478)
Signed-off-by: Steffen Müthing <muething@dune-project.org>
---
 cmake/modules/FindSuiteSparse.cmake | 14 +++++++++-----
 cmake/modules/FindUMFPack.cmake     |  3 +--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/cmake/modules/FindSuiteSparse.cmake b/cmake/modules/FindSuiteSparse.cmake
index 9fec9323f..382d24f46 100644
--- a/cmake/modules/FindSuiteSparse.cmake
+++ b/cmake/modules/FindSuiteSparse.cmake
@@ -12,7 +12,7 @@
 #
 # Sets the following result variables:
 #
-# SUITESPARSE_FOUND               Whether SuiteSparse was found and usable in the desired setting
+# SuiteSparse_FOUND               Whether SuiteSparse was found and usable in the desired setting
 # SUITESPARSE_INCLUDE_DIRS        Path to the SuiteSparse include dirs
 # SUITESPARSE_LIBRARIES           Name of the SuiteSparse libraries
 # SUITESPARSE_<COMPONENT>_FOUND   Whether <COMPONENT> was found as part of SuiteSparse
@@ -151,6 +151,8 @@ set(SUITESPARSE_FOUND TRUE)
 foreach(modname ${SUITESPARSE_COMPONENTS})
   dune_module_to_uppercase(MODNAME ${modname})
   set(SUITESPARSE_${MODNAME}_FOUND TRUE)
+  # variable used for component handling
+  set(SuiteSparse_${modname}_FOUND TRUE)
   if(${MODNAME}_LIBRARY AND ${MODNAME}_INCLUDE_DIR)
     list(APPEND SUITESPARSE_INCLUDE_DIR "${${MODNAME}_INCLUDE_DIR}")
     list(APPEND SUITESPARSE_LIBRARY "${${MODNAME}_LIBRARY}")
@@ -161,6 +163,7 @@ foreach(modname ${SUITESPARSE_COMPONENTS})
   set(HAVE_SUITESPARSE_${MODNAME} 1)
   mark_as_advanced(HAVE_SUITESPARSE_${MODNAME})
   mark_as_advanced(SUITESPARSE_${MODNAME}_FOUND)
+  mark_as_advanced(SuiteSparse_${modname}_FOUND)
 endforeach()
 
 list(APPEND SUITESPARSE_LIBRARY ${SUITESPARSE_CONFIG_LIB})
@@ -181,15 +184,16 @@ endif()
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(
   "SuiteSparse"
-  DEFAULT_MSG
+  REQUIRED_VARS
   SUITESPARSE_INCLUDE_DIR
   SUITESPARSE_LIBRARY
+  HANDLE_COMPONENTS
 )
 
 mark_as_advanced(SUITESPARSE_INCLUDE_DIR SUITESPARSE_LIBRARY)
 
 # if both headers and library are found, store results
-if(SUITESPARSE_FOUND)
+if(SuiteSparse_FOUND)
   set(SUITESPARSE_LIBRARIES ${SUITESPARSE_LIBRARY})
   set(SUITESPARSE_INCLUDE_DIRS ${SUITESPARSE_INCLUDE_DIR})
   # log result
@@ -214,10 +218,10 @@ else()
 endif()
 
 #set HAVE_SUITESPARSE for config.h
-set(HAVE_SUITESPARSE ${SUITESPARSE_FOUND})
+set(HAVE_SUITESPARSE ${SuiteSparse_FOUND})
 
 # register all SuiteSparse related flags
-if(SUITESPARSE_FOUND)
+if(SuiteSparse_FOUND)
   dune_register_package_flags(
     COMPILE_DEFINITIONS "ENABLE_SUITESPARSE=1"
     LIBRARIES "${SUITESPARSE_LIBRARIES}"
diff --git a/cmake/modules/FindUMFPack.cmake b/cmake/modules/FindUMFPack.cmake
index f1854c205..31a1bdaa9 100644
--- a/cmake/modules/FindUMFPack.cmake
+++ b/cmake/modules/FindUMFPack.cmake
@@ -13,8 +13,7 @@
 include( FindSuiteSparse )
 find_package( SuiteSparse COMPONENTS umfpack )
 
-if( SUITESPARSE_FOUND )
-  set( UMFPACK_FOUND TRUE )
+if(SuiteSparse_umfpack_FOUND)
   set( UMFPACK_INCLUDE_DIR ${SUITESPARSE_INCLUDE_DIR} )
   set( UMFPACK_LIBRARY ${SUITESPARSE_LIBRARY} )
 endif()
-- 
GitLab