From 003a1624f4ea92c33f24a5bcb00cda2a8536bac3 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Wed, 9 Oct 2013 19:33:33 +0100 Subject: [PATCH] Fixing issue with CMake >= 2.8.10.2 FindPackageHandleStandardArgs. - Prior to CMake 2.8.10.2 FindPackageHandleStandardArgs was safe if passed _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 --- cmake/FindSuiteSparse.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmake/FindSuiteSparse.cmake b/cmake/FindSuiteSparse.cmake index 53dd0384b..a0beab9a3 100644 --- a/cmake/FindSuiteSparse.cmake +++ b/cmake/FindSuiteSparse.cmake @@ -428,6 +428,7 @@ IF (AMD_FOUND AND 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 @@ ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux" AND # Handle REQUIRED and QUIET arguments to FIND_PACKAGE INCLUDE(FindPackageHandleStandardArgs) +# A change to CMake after release 2.8.10.2 means that +# FindPackageHandleStandardArgs() unsets _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)