Switch to imported SuiteSparse, CXSparse, and METIS targets

These changes allow the use of a SuiteSparse CMake package from
https://github.com/sergiud/SuiteSparse that allows native compilation of
SuiteSparse using CMake on a variety of platforms Packages generated
using official SuiteSparse makefiles can still be used without
modifications. The find module remains agnostic to specific CMake
package implementation.

CMake packages have the advantage that they are self-contained and
relocatable. The latter is particularly useful in cross-compilation
scenarios.

Fixes #728

Change-Id: I089d5c6f87c05b1530a5ab9a36dff2fcbe82d13d
This commit is contained in:
Sergiu Deitsch
2022-02-06 19:13:39 +01:00
parent b0f32a20d7
commit 817f5a0688
7 changed files with 563 additions and 552 deletions
+9 -16
View File
@@ -113,17 +113,18 @@ if (NOT MINIGLOG AND GLOG_FOUND)
endif()
endif (NOT MINIGLOG AND GLOG_FOUND)
if (SUITESPARSE AND SUITESPARSE_FOUND)
if (SUITESPARSE AND SuiteSparse_FOUND)
# Define version information for use in Solver::FullReport.
add_definitions(-DCERES_SUITESPARSE_VERSION="${SUITESPARSE_VERSION}")
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${SUITESPARSE_LIBRARIES})
endif (SUITESPARSE AND SUITESPARSE_FOUND)
add_definitions(-DCERES_SUITESPARSE_VERSION="${SuiteSparse_VERSION}")
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES SuiteSparse::CHOLMOD
SuiteSparse::SPQR)
endif (SUITESPARSE AND SuiteSparse_FOUND)
if (CXSPARSE AND CXSPARSE_FOUND)
if (CXSPARSE AND CXSparse_FOUND)
# Define version information for use in Solver::FullReport.
add_definitions(-DCERES_CXSPARSE_VERSION="${CXSPARSE_VERSION}")
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CXSPARSE_LIBRARIES})
endif (CXSPARSE AND CXSPARSE_FOUND)
add_definitions(-DCERES_CXSPARSE_VERSION="${CXSparse_VERSION}")
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES CXSparse::CXSparse)
endif (CXSPARSE AND CXSparse_FOUND)
if (ACCELERATESPARSE AND AccelerateSparse_FOUND)
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${AccelerateSparse_LIBRARIES})
@@ -372,14 +373,6 @@ elseif (NOT FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION)
list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES_INCLUDE_DIRS
${GLOG_INCLUDE_DIRS})
endif()
if (SUITESPARSE)
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES_INCLUDE_DIRS
${SUITESPARSE_INCLUDE_DIRS})
endif()
if (CXSPARSE)
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES_INCLUDE_DIRS
${CXSPARSE_INCLUDE_DIRS})
endif()
if (ACCELERATESPARSE)
list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES_INCLUDE_DIRS
${AccelerateSparse_INCLUDE_DIRS})