mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 08:34:37 +08:00
Cleaning up messages output when SuiteSparse is not found.
- Automatically generated failure message now provides more information as to which sub-modules are missing. Change-Id: I6eed94af49263540b8f87917b75c41b8f49658a0
This commit is contained in:
committed by
Sameer Agarwal
parent
9ba0b352a2
commit
b5be6b9c06
+89
-51
@@ -121,6 +121,10 @@ MACRO(SUITESPARSE_REPORT_NOT_FOUND REASON_MSG)
|
||||
UNSET(SUITESPARSE_MAIN_VERSION)
|
||||
UNSET(SUITESPARSE_SUB_VERSION)
|
||||
UNSET(SUITESPARSE_SUBSUB_VERSION)
|
||||
# Do NOT unset SUITESPARSE_FOUND_REQUIRED_VARS here, as it is used by
|
||||
# FindPackageHandleStandardArgs() to generate the automatic error message on
|
||||
# failure which highlights which components are missing.
|
||||
|
||||
# Note <package>_FIND_[REQUIRED/QUIETLY] variables defined by FindPackage()
|
||||
# use the camelcase library name, not uppercase.
|
||||
IF (SuiteSparse_FIND_QUIETLY)
|
||||
@@ -132,6 +136,8 @@ MACRO(SUITESPARSE_REPORT_NOT_FOUND REASON_MSG)
|
||||
# but continues configuration and allows generation.
|
||||
MESSAGE("-- Failed to find SuiteSparse - " ${REASON_MSG} ${ARGN})
|
||||
ENDIF (SuiteSparse_FIND_QUIETLY)
|
||||
|
||||
# Do not call RETURN(), s/t we keep processing if not called with REQUIRED.
|
||||
ENDMACRO(SUITESPARSE_REPORT_NOT_FOUND)
|
||||
|
||||
# Specify search directories for include files and libraries (this is the union
|
||||
@@ -157,12 +163,19 @@ LIST(APPEND SUITESPARSE_CHECK_LIBRARY_DIRS
|
||||
/usr/lib/suitesparse # Ubuntu
|
||||
/usr/lib)
|
||||
|
||||
# Given the number of components of SuiteSparse, and to ensure that the
|
||||
# automatic failure message generated by FindPackageHandleStandardArgs()
|
||||
# when not all required components are found is helpful, we maintain a list
|
||||
# of all variables that must be defined for SuiteSparse to be considered found.
|
||||
UNSET(SUITESPARSE_FOUND_REQUIRED_VARS)
|
||||
|
||||
# BLAS.
|
||||
FIND_PACKAGE(BLAS QUIET)
|
||||
IF (NOT BLAS_FOUND)
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find BLAS library (required for SuiteSparse).")
|
||||
ENDIF (NOT BLAS_FOUND)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS BLAS_FOUND)
|
||||
|
||||
# LAPACK.
|
||||
FIND_PACKAGE(LAPACK QUIET)
|
||||
@@ -170,15 +183,18 @@ IF (NOT LAPACK_FOUND)
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find LAPACK library (required for SuiteSparse).")
|
||||
ENDIF (NOT LAPACK_FOUND)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS LAPACK_FOUND)
|
||||
|
||||
# AMD.
|
||||
SET(AMD_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS AMD_FOUND)
|
||||
FIND_LIBRARY(AMD_LIBRARY NAMES amd
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${AMD_LIBRARY})
|
||||
MESSAGE(STATUS "Found AMD library: ${AMD_LIBRARY}")
|
||||
ELSE (EXISTS ${AMD_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find AMD library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find AMD library (required SuiteSparse component).")
|
||||
SET(AMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${AMD_LIBRARY})
|
||||
MARK_AS_ADVANCED(AMD_LIBRARY)
|
||||
@@ -188,19 +204,22 @@ FIND_PATH(AMD_INCLUDE_DIR NAMES amd.h
|
||||
IF (EXISTS ${AMD_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found AMD header in: ${AMD_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${AMD_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find AMD header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find AMD header (required SuiteSparse component).")
|
||||
SET(AMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${AMD_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(AMD_INCLUDE_DIR)
|
||||
|
||||
# CAMD.
|
||||
SET(CAMD_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CAMD_FOUND)
|
||||
FIND_LIBRARY(CAMD_LIBRARY NAMES camd
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${CAMD_LIBRARY})
|
||||
MESSAGE(STATUS "Found CAMD library: ${CAMD_LIBRARY}")
|
||||
ELSE (EXISTS ${CAMD_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CAMD library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CAMD library (required SuiteSparse component).")
|
||||
SET(CAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CAMD_LIBRARY})
|
||||
MARK_AS_ADVANCED(CAMD_LIBRARY)
|
||||
@@ -210,19 +229,22 @@ FIND_PATH(CAMD_INCLUDE_DIR NAMES camd.h
|
||||
IF (EXISTS ${CAMD_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found CAMD header in: ${CAMD_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${CAMD_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CAMD header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CAMD header (required SuiteSparse component).")
|
||||
SET(CAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CAMD_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(CAMD_INCLUDE_DIR)
|
||||
|
||||
# COLAMD.
|
||||
SET(COLAMD_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS COLAMD_FOUND)
|
||||
FIND_LIBRARY(COLAMD_LIBRARY NAMES colamd
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${COLAMD_LIBRARY})
|
||||
MESSAGE(STATUS "Found COLAMD library: ${COLAMD_LIBRARY}")
|
||||
ELSE (EXISTS ${COLAMD_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find COLAMD library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find COLAMD library (required SuiteSparse component).")
|
||||
SET(COLAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${COLAMD_LIBRARY})
|
||||
MARK_AS_ADVANCED(COLAMD_LIBRARY)
|
||||
@@ -232,19 +254,22 @@ FIND_PATH(COLAMD_INCLUDE_DIR NAMES colamd.h
|
||||
IF (EXISTS ${COLAMD_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found COLAMD header in: ${COLAMD_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${COLAMD_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find COLAMD header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find COLAMD header (required SuiteSparse component).")
|
||||
SET(COLAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${COLAMD_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(COLAMD_INCLUDE_DIR)
|
||||
|
||||
# CCOLAMD.
|
||||
SET(CCOLAMD_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CCOLAMD_FOUND)
|
||||
FIND_LIBRARY(CCOLAMD_LIBRARY NAMES ccolamd
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${CCOLAMD_LIBRARY})
|
||||
MESSAGE(STATUS "Found CCOLAMD library: ${CCOLAMD_LIBRARY}")
|
||||
ELSE (EXISTS ${CCOLAMD_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CCOLAMD library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CCOLAMD library (required SuiteSparse component).")
|
||||
SET(CCOLAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CCOLAMD_LIBRARY})
|
||||
MARK_AS_ADVANCED(CCOLAMD_LIBRARY)
|
||||
@@ -254,19 +279,22 @@ FIND_PATH(CCOLAMD_INCLUDE_DIR NAMES ccolamd.h
|
||||
IF (EXISTS ${CCOLAMD_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found CCOLAMD header in: ${CCOLAMD_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${CCOLAMD_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CCOLAMD header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CCOLAMD header (required SuiteSparse component).")
|
||||
SET(CCOLAMD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CCOLAMD_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(CCOLAMD_INCLUDE_DIR)
|
||||
|
||||
# CHOLMOD.
|
||||
SET(CHOLMOD_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS CHOLMOD_FOUND)
|
||||
FIND_LIBRARY(CHOLMOD_LIBRARY NAMES cholmod
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${CHOLMOD_LIBRARY})
|
||||
MESSAGE(STATUS "Found CHOLMOD library: ${CHOLMOD_LIBRARY}")
|
||||
ELSE (EXISTS ${CHOLMOD_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CHOLMOD library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CHOLMOD library (required SuiteSparse component).")
|
||||
SET(CHOLMOD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CHOLMOD_LIBRARY})
|
||||
MARK_AS_ADVANCED(CHOLMOD_LIBRARY)
|
||||
@@ -276,19 +304,22 @@ FIND_PATH(CHOLMOD_INCLUDE_DIR NAMES cholmod.h
|
||||
IF (EXISTS ${CHOLMOD_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found CHOLMOD header in: ${CHOLMOD_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${CHOLMOD_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find CHOLMOD header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find CHOLMOD header (required SuiteSparse component).")
|
||||
SET(CHOLMOD_FOUND FALSE)
|
||||
ENDIF (EXISTS ${CHOLMOD_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(CHOLMOD_INCLUDE_DIR)
|
||||
|
||||
# SuiteSparseQR.
|
||||
SET(SUITESPARSEQR_FOUND TRUE)
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSEQR_FOUND)
|
||||
FIND_LIBRARY(SUITESPARSEQR_LIBRARY NAMES spqr
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${SUITESPARSEQR_LIBRARY})
|
||||
MESSAGE(STATUS "Found SuiteSparseQR library: ${SUITESPARSEQR_LIBRARY}")
|
||||
ELSE (EXISTS ${SUITESPARSEQR_LIBRARY})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find SUITESPARSEQR library.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find SuiteSparseQR library (required SuiteSparse component).")
|
||||
SET(SUITESPARSEQR_FOUND FALSE)
|
||||
ENDIF (EXISTS ${SUITESPARSEQR_LIBRARY})
|
||||
MARK_AS_ADVANCED(SUITESPARSEQR_LIBRARY)
|
||||
@@ -298,7 +329,8 @@ FIND_PATH(SUITESPARSEQR_INCLUDE_DIR NAMES SuiteSparseQR.hpp
|
||||
IF (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found SuiteSparseQR header in: ${SUITESPARSEQR_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
|
||||
SUITESPARSE_REPORT_NOT_FOUND("Did not find SUITESPARSEQR header.")
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Did not find SUITESPARSEQR header (required SuiteSparse component).")
|
||||
SET(SUITESPARSEQR_FOUND FALSE)
|
||||
ENDIF (EXISTS ${SUITESPARSEQR_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(SUITESPARSEQR_INCLUDE_DIR)
|
||||
@@ -351,17 +383,11 @@ ENDIF(SUITESPARSEQR_FOUND)
|
||||
#
|
||||
# If SuiteSparse version is >= 4 then SuiteSparse_config is required.
|
||||
# For SuiteSparse 3, UFconfig.h is required.
|
||||
SET(SUITESPARSE_CONFIG_FOUND TRUE)
|
||||
SET(UFCONFIG_FOUND TRUE)
|
||||
|
||||
FIND_LIBRARY(SUITESPARSE_CONFIG_LIBRARY NAMES suitesparseconfig
|
||||
PATHS ${SUITESPARSE_CHECK_LIBRARY_DIRS})
|
||||
IF (EXISTS ${SUITESPARSE_CONFIG_LIBRARY})
|
||||
MESSAGE(STATUS "Found SuiteSparse_config library: "
|
||||
"${SUITESPARSE_CONFIG_LIBRARY}")
|
||||
ELSE (EXISTS ${SUITESPARSE_CONFIG_LIBRARY})
|
||||
MESSAGE(STATUS "Did not find SuiteSparse_config library (should be present "
|
||||
"in SuiteSparse >= v4 installs).")
|
||||
ENDIF (EXISTS ${SUITESPARSE_CONFIG_LIBRARY})
|
||||
MARK_AS_ADVANCED(SUITESPARSE_CONFIG_LIBRARY)
|
||||
|
||||
@@ -370,15 +396,15 @@ FIND_PATH(SUITESPARSE_CONFIG_INCLUDE_DIR NAMES SuiteSparse_config.h
|
||||
IF (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found SuiteSparse_config header in: "
|
||||
"${SUITESPARSE_CONFIG_INCLUDE_DIR}")
|
||||
SET(UFCONFIG_FOUND FALSE)
|
||||
ELSE (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Did not find SuiteSparse_config header (should be present "
|
||||
"in SuiteSparse >= v4 installs).")
|
||||
ENDIF (EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(SUITESPARSE_CONFIG_INCLUDE_DIR)
|
||||
|
||||
SET(SUITESPARSE_CONFIG_FOUND FALSE)
|
||||
SET(UFCONFIG_FOUND FALSE)
|
||||
|
||||
IF (EXISTS ${SUITESPARSE_CONFIG_LIBRARY} AND
|
||||
EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
SET(SUITESPARSE_CONFIG_FOUND TRUE)
|
||||
# SuiteSparse_config (SuiteSparse version >= 4) requires librt library for
|
||||
# timing by default when compiled on Linux or Unix, but not on OSX (which
|
||||
# does not have librt).
|
||||
@@ -396,24 +422,35 @@ IF (EXISTS ${SUITESPARSE_CONFIG_LIBRARY} AND
|
||||
MARK_AS_ADVANCED(LIBRT_LIBRARY)
|
||||
LIST(APPEND SUITESPARSE_CONFIG_LIBRARY ${LIBRT_LIBRARY})
|
||||
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux" OR UNIX AND NOT APPLE)
|
||||
|
||||
ELSE (EXISTS ${SUITESPARSE_CONFIG_LIBRARY} AND
|
||||
EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
# Failed to find SuiteSparse_config (>= v4 installs), instead look for
|
||||
# UFconfig header which should be present in < v4 installs.
|
||||
SET(SUITESPARSE_CONFIG_FOUND FALSE)
|
||||
FIND_PATH(UFCONFIG_INCLUDE_DIR NAMES UFconfig.h
|
||||
PATHS ${SUITESPARSE_CHECK_INCLUDE_DIRS})
|
||||
IF (EXISTS ${UFCONFIG_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Found UFconfig header in: ${UFCONFIG_INCLUDE_DIR}")
|
||||
ELSE (EXISTS ${UFCONFIG_INCLUDE_DIR})
|
||||
MESSAGE(STATUS "Did not find UFconfig header (should be present "
|
||||
"in SuiteSparse < v4 installs)")
|
||||
SET(UFCONFIG_FOUND FALSE)
|
||||
SET(UFCONFIG_FOUND TRUE)
|
||||
ENDIF (EXISTS ${UFCONFIG_INCLUDE_DIR})
|
||||
MARK_AS_ADVANCED(UFCONFIG_INCLUDE_DIR)
|
||||
ENDIF (EXISTS ${SUITESPARSE_CONFIG_LIBRARY} AND
|
||||
EXISTS ${SUITESPARSE_CONFIG_INCLUDE_DIR})
|
||||
|
||||
IF (NOT SUITESPARSE_CONFIG_FOUND AND
|
||||
NOT UFCONFIG_FOUND)
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Failed to find either: SuiteSparse_config header & library (should be "
|
||||
"present in all SuiteSparse >= v4 installs), or UFconfig header (should "
|
||||
"be present in all SuiteSparse < v4 installs).")
|
||||
ENDIF (NOT SUITESPARSE_CONFIG_FOUND AND
|
||||
NOT UFCONFIG_FOUND)
|
||||
|
||||
# Extract the SuiteSparse version from the appropriate header (UFconfig.h for
|
||||
# <= v3, SuiteSparse_config.h for >= v4).
|
||||
LIST(APPEND SUITESPARSE_FOUND_REQUIRED_VARS SUITESPARSE_VERSION)
|
||||
|
||||
IF (UFCONFIG_FOUND)
|
||||
# SuiteSparse version <= 3.
|
||||
SET(SUITESPARSE_VERSION_FILE ${UFCONFIG_INCLUDE_DIR}/UFconfig.h)
|
||||
@@ -491,18 +528,16 @@ ELSE (EXISTS ${METIS_LIBRARY})
|
||||
ENDIF (EXISTS ${METIS_LIBRARY})
|
||||
MARK_AS_ADVANCED(METIS_LIBRARY)
|
||||
|
||||
# Only mark SuiteSparse as found if all required dependencies have been found.
|
||||
SET(SUITESPARSE_FOUND FALSE)
|
||||
IF (AMD_FOUND AND
|
||||
CAMD_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)
|
||||
SET(SUITESPARSE_FOUND TRUE)
|
||||
# Only mark SuiteSparse as found if all required components and dependencies
|
||||
# have been found.
|
||||
SET(SUITESPARSE_FOUND TRUE)
|
||||
FOREACH(REQUIRED_VAR ${SUITESPARSE_FOUND_REQUIRED_VARS})
|
||||
IF (NOT ${REQUIRED_VAR})
|
||||
SET(SUITESPARSE_FOUND FALSE)
|
||||
ENDIF (NOT ${REQUIRED_VAR})
|
||||
ENDFOREACH(REQUIRED_VAR ${SUITESPARSE_FOUND_REQUIRED_VARS})
|
||||
|
||||
IF (SUITESPARSE_FOUND)
|
||||
LIST(APPEND SUITESPARSE_INCLUDE_DIRS
|
||||
${AMD_INCLUDE_DIR}
|
||||
${CAMD_INCLUDE_DIR}
|
||||
@@ -532,7 +567,9 @@ IF (AMD_FOUND AND
|
||||
${CCOLAMD_LIBRARY}
|
||||
${CAMD_LIBRARY}
|
||||
${COLAMD_LIBRARY}
|
||||
${AMD_LIBRARY})
|
||||
${AMD_LIBRARY}
|
||||
${LAPACK_LIBRARIES}
|
||||
${BLAS_LIBRARIES})
|
||||
IF (SUITESPARSE_CONFIG_FOUND)
|
||||
LIST(APPEND SUITESPARSE_LIBRARIES
|
||||
${SUITESPARSE_CONFIG_LIBRARY})
|
||||
@@ -541,9 +578,6 @@ IF (AMD_FOUND AND
|
||||
LIST(APPEND SUITESPARSE_LIBRARIES
|
||||
${METIS_LIBRARY})
|
||||
ENDIF (METIS_FOUND)
|
||||
ELSE()
|
||||
SUITESPARSE_REPORT_NOT_FOUND(
|
||||
"Failed to find some/all required components of SuiteSparse.")
|
||||
ENDIF()
|
||||
|
||||
# Determine if we are running on Ubuntu with the package install of SuiteSparse
|
||||
@@ -577,12 +611,16 @@ 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 <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
|
||||
REQUIRED_VARS SUITESPARSE_INCLUDE_DIRS SUITESPARSE_LIBRARIES SUITESPARSE_FOUND_COPY
|
||||
VERSION_VAR SUITESPARSE_VERSION)
|
||||
IF (SUITESPARSE_FOUND)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SuiteSparse
|
||||
REQUIRED_VARS ${SUITESPARSE_FOUND_REQUIRED_VARS}
|
||||
VERSION_VAR SUITESPARSE_VERSION
|
||||
FAIL_MESSAGE "Failed to find some/all required components of SuiteSparse.")
|
||||
ELSE (SUITESPARSE_FOUND)
|
||||
# Do not pass VERSION_VAR to FindPackageHandleStandardArgs() if we failed to
|
||||
# find SuiteSparse to avoid a confusing autogenerated failure message
|
||||
# that states 'not found (missing: FOO) (found version: x.y.z)'.
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SuiteSparse
|
||||
REQUIRED_VARS ${SUITESPARSE_FOUND_REQUIRED_VARS}
|
||||
FAIL_MESSAGE "Failed to find some/all required components of SuiteSparse.")
|
||||
ENDIF (SUITESPARSE_FOUND)
|
||||
|
||||
Reference in New Issue
Block a user