diff --git a/cmake/Modules/FindSuiteSparse.cmake b/cmake/Modules/FindSuiteSparse.cmake index b14105d8..ba36d608 100644 --- a/cmake/Modules/FindSuiteSparse.cmake +++ b/cmake/Modules/FindSuiteSparse.cmake @@ -57,14 +57,17 @@ endif (${SuiteSparse_ROOT}) # transitive closure of dependencies; after this SuiteSparse_MODULES is the # full list of modules that must be found to satisfy the user's link demands set (SuiteSparse_MODULES ${SuiteSparse_FIND_COMPONENTS}) -list (FIND SuiteSparse_FIND_COMPONENTS "cholmod" CHOLMOD_DESIRED) -list (FIND SuiteSparse_FIND_COMPONENTS "umfpack" UMFPACK_DESIRED) -if (NOT CHOLMOD_DESIRED EQUAL -1) - list (APPEND SuiteSparse_MODULES amd camd colamd ccoilamd) -endif (NOT CHOLMOD_DESIRED EQUAL -1) +list (FIND SuiteSparse_MODULES "umfpack" UMFPACK_DESIRED) if (NOT UMFPACK_DESIRED EQUAL -1) - list (APPEND SuiteSparse_MODULES amd) + list (APPEND SuiteSparse_MODULES amd cholmod) endif (NOT UMFPACK_DESIRED EQUAL -1) +list (FIND SuiteSparse_MODULES "cholmod" CHOLMOD_DESIRED) +if (NOT CHOLMOD_DESIRED EQUAL -1) + list (APPEND SuiteSparse_MODULES amd camd colamd) +endif (NOT CHOLMOD_DESIRED EQUAL -1) +if (SuiteSparse_MODULES) + list (REMOVE_DUPLICATES SuiteSparse_MODULES) +endif (SuiteSparse_MODULES) # if someone else already have found all the packages for us, then don't do anything set (SuiteSparse_EVERYTHING_FOUND TRUE) @@ -114,7 +117,7 @@ if (CHOLMOD_LIBRARY) list (REVERSE CHOLMOD_LIBRARIES) endif (CHOLMOD_LIBRARY) if (UMFPACK_LIBRARY) - list (APPEND UMFPACK_LIBRARIES ${AMD_LIBRARIES}) + list (APPEND UMFPACK_LIBRARIES ${CHOLMOD_LIBRARIES} ${AMD_LIBRARIES}) list (REVERSE UMFPACK_LIBRARIES) list (REMOVE_DUPLICATES UMFPACK_LIBRARIES) list (REVERSE UMFPACK_LIBRARIES)