Fixing issue with CMake >= 2.8.10.2 FindPackageHandleStandardArgs.
- Prior to CMake 2.8.10.2 FindPackageHandleStandardArgs was safe if
passed <LIBRARY>_FOUND as a variable to validate, this is no longer
true for newer CMake releases.
- Also adding missing SUITESPARSEQR_FOUND requirement for
SUITESPARSE_FOUND.
Change-Id: I0fdde56585fc736bdfbf433901ad17ee9f1cc216
diff --git a/cmake/FindSuiteSparse.cmake b/cmake/FindSuiteSparse.cmake
index 53dd038..a0beab9 100644
--- a/cmake/FindSuiteSparse.cmake
+++ b/cmake/FindSuiteSparse.cmake
@@ -428,6 +428,7 @@
COLAMD_FOUND AND
CCOLAMD_FOUND AND
CHOLMOD_FOUND AND
+ SUITESPARSEQR_FOUND AND
(SUITESPARSE_CONFIG_FOUND OR UFCONFIG_FOUND) AND
BLAS_FOUND AND
LAPACK_FOUND)
@@ -501,6 +502,11 @@
# Handle REQUIRED and QUIET arguments to FIND_PACKAGE
INCLUDE(FindPackageHandleStandardArgs)
+# A change to CMake after release 2.8.10.2 means that
+# FindPackageHandleStandardArgs() unsets <LibraryName>_FOUND without checking
+# if it is one of the variables passed whose existence & validity is verified
+# by FindPackageHandleStandardArgs() in conjunction with handling the REQUIRED
+# and QUIET optional arguments, as such we use an intermediary variable.
+SET(SUITESPARSE_FOUND_COPY ${SUITESPARSE_FOUND})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SuiteSparse DEFAULT_MSG
- SUITESPARSE_FOUND SUITESPARSE_INCLUDE_DIRS SUITESPARSE_LIBRARIES)
-
+ SUITESPARSE_FOUND_COPY SUITESPARSE_INCLUDE_DIRS SUITESPARSE_LIBRARIES)