Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- forgot the suiteSparse-Package file
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@21344 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
- Loading branch information
Marcus Walther
committed
Jun 30, 2014
1 parent
2fbbd22
commit 329dc66
Showing
1 changed file
with
127 additions
and
0 deletions.
There are no files selected for viewing
127 changes: 127 additions & 0 deletions
127
SimulationRuntime/cpp/Solver/UmfPack/FindSuiteSparse.cmake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
# - Try to find SUITESPARSE | ||
# Once done this will define | ||
# | ||
# SUITESPARSE_FOUND - system has SUITESPARSE | ||
# SUITESPARSE_INCLUDE_DIRS - the SUITESPARSE include directory | ||
# SUITESPARSE_LIBRARIES - Link these to use SUITESPARSE | ||
# SUITESPARSE_SPQR_LIBRARY - name of spqr library (necessary due to error in debian package) | ||
# SUITESPARSE_SPQR_LIBRARY_DIR - name of spqr library (necessary due to error in debian package) | ||
# SUITESPARSE_LIBRARY_DIR - Library main directory containing suitesparse libs | ||
# SUITESPARSE_LIBRARY_DIRS - all Library directories containing suitesparse libs | ||
# SUITESPARSE_SPQR_VALID - automatic identification whether or not spqr package is installed correctly | ||
|
||
IF (SUITESPARSE_INCLUDE_DIRS) | ||
# Already in cache, be silent | ||
SET(SUITESPARSE_FIND_QUIETLY TRUE) | ||
ENDIF (SUITESPARSE_INCLUDE_DIRS) | ||
|
||
if( WIN32 ) | ||
# Find cholmod part of the suitesparse library collection | ||
|
||
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h | ||
PATHS "C:\\libs\\win32\\SuiteSparse\\Include" ) | ||
|
||
# Add cholmod include directory to collection include directories | ||
IF ( CHOLMOD_INCLUDE_DIR ) | ||
list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} ) | ||
ENDIF( CHOLMOD_INCLUDE_DIR ) | ||
|
||
|
||
# find path suitesparse library | ||
FIND_PATH( SUITESPARSE_LIBRARY_DIRS | ||
amd.lib | ||
PATHS "C:\\libs\\win32\\SuiteSparse\\libs" ) | ||
|
||
# if we found the library, add it to the defined libraries | ||
IF ( SUITESPARSE_LIBRARY_DIRS ) | ||
list ( APPEND SUITESPARSE_LIBRARIES optimized;amd;optimized;camd;optimized;ccolamd;optimized;cholmod;optimized;colamd;optimized;metis;optimized;spqr;optimized;umfpack;debug;amdd;debug;camdd;debug;ccolamdd;debug;cholmodd;debug;spqrd;debug;umfpackd;debug;colamdd;debug;metisd;optimized;blas;optimized;libf2c;optimized;lapack;debug;blasd;debug;libf2cd;debug;lapackd ) | ||
ENDIF( SUITESPARSE_LIBRARY_DIRS ) | ||
|
||
else( WIN32 ) | ||
IF(APPLE) | ||
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h | ||
PATHS /opt/local/include/ufsparse | ||
/usr/local/include ) | ||
|
||
FIND_PATH( SUITESPARSE_LIBRARY_DIR | ||
NAMES libcholmod.a | ||
PATHS /opt/local/lib | ||
/usr/local/lib ) | ||
ELSE(APPLE) | ||
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h | ||
PATHS /usr/local/include | ||
/usr/include | ||
/usr/include/suitesparse/ | ||
${CMAKE_SOURCE_DIR}/MacOS/Libs/cholmod | ||
PATH_SUFFIXES cholmod/ CHOLMOD/ ) | ||
|
||
FIND_PATH( SUITESPARSE_LIBRARY_DIR | ||
NAMES libcholmod.so libcholmod.a | ||
PATHS /usr/lib | ||
/usr/lib64 | ||
/usr/lib/x86_64-linux-gnu | ||
/usr/local/lib ) | ||
ENDIF(APPLE) | ||
|
||
# Add cholmod include directory to collection include directories | ||
IF ( CHOLMOD_INCLUDE_DIR ) | ||
list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} ) | ||
ENDIF( CHOLMOD_INCLUDE_DIR ) | ||
|
||
# if we found the library, add it to the defined libraries | ||
IF ( SUITESPARSE_LIBRARY_DIR ) | ||
|
||
list ( APPEND SUITESPARSE_LIBRARIES amd) | ||
list ( APPEND SUITESPARSE_LIBRARIES btf) | ||
list ( APPEND SUITESPARSE_LIBRARIES camd) | ||
list ( APPEND SUITESPARSE_LIBRARIES ccolamd) | ||
list ( APPEND SUITESPARSE_LIBRARIES cholmod) | ||
list ( APPEND SUITESPARSE_LIBRARIES colamd) | ||
# list ( APPEND SUITESPARSE_LIBRARIES csparse) | ||
list ( APPEND SUITESPARSE_LIBRARIES cxsparse) | ||
list ( APPEND SUITESPARSE_LIBRARIES klu) | ||
# list ( APPEND SUITESPARSE_LIBRARIES spqr) | ||
list ( APPEND SUITESPARSE_LIBRARIES umfpack) | ||
|
||
IF (APPLE) | ||
list ( APPEND SUITESPARSE_LIBRARIES suitesparseconfig) | ||
ENDIF (APPLE) | ||
|
||
# Metis and spqr are optional | ||
FIND_LIBRARY( SUITESPARSE_METIS_LIBRARY | ||
NAMES metis | ||
PATHS ${SUITESPARSE_LIBRARY_DIR} ) | ||
IF (SUITESPARSE_METIS_LIBRARY) | ||
list ( APPEND SUITESPARSE_LIBRARIES metis) | ||
ENDIF(SUITESPARSE_METIS_LIBRARY) | ||
|
||
if(EXISTS "${CHOLMOD_INCLUDE_DIR}/SuiteSparseQR.hpp") | ||
SET(SUITESPARSE_SPQR_VALID TRUE CACHE BOOL "SuiteSparseSPQR valid") | ||
else() | ||
SET(SUITESPARSE_SPQR_VALID false CACHE BOOL "SuiteSparseSPQR valid") | ||
endif() | ||
|
||
if(SUITESPARSE_SPQR_VALID) | ||
FIND_LIBRARY( SUITESPARSE_SPQR_LIBRARY | ||
NAMES spqr | ||
PATHS ${SUITESPARSE_LIBRARY_DIR} ) | ||
IF (SUITESPARSE_SPQR_LIBRARY) | ||
list ( APPEND SUITESPARSE_LIBRARIES spqr) | ||
ENDIF (SUITESPARSE_SPQR_LIBRARY) | ||
endif() | ||
|
||
ENDIF( SUITESPARSE_LIBRARY_DIR ) | ||
|
||
endif( WIN32 ) | ||
|
||
|
||
IF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) | ||
IF(WIN32) | ||
list (APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR}/../../UFconfig ) | ||
ENDIF(WIN32) | ||
SET(SUITESPARSE_FOUND TRUE) | ||
MESSAGE(STATUS "Found SuiteSparse") | ||
ELSE (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) | ||
SET( SUITESPARSE_FOUND FALSE ) | ||
MESSAGE(FATAL_ERROR "Unable to find SuiteSparse") | ||
ENDIF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES) |