Skip to content

Commit 329dc66

Browse files
author
Marcus Walther
committed
- forgot the suiteSparse-Package file
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@21344 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 2fbbd22 commit 329dc66

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# - Try to find SUITESPARSE
2+
# Once done this will define
3+
#
4+
# SUITESPARSE_FOUND - system has SUITESPARSE
5+
# SUITESPARSE_INCLUDE_DIRS - the SUITESPARSE include directory
6+
# SUITESPARSE_LIBRARIES - Link these to use SUITESPARSE
7+
# SUITESPARSE_SPQR_LIBRARY - name of spqr library (necessary due to error in debian package)
8+
# SUITESPARSE_SPQR_LIBRARY_DIR - name of spqr library (necessary due to error in debian package)
9+
# SUITESPARSE_LIBRARY_DIR - Library main directory containing suitesparse libs
10+
# SUITESPARSE_LIBRARY_DIRS - all Library directories containing suitesparse libs
11+
# SUITESPARSE_SPQR_VALID - automatic identification whether or not spqr package is installed correctly
12+
13+
IF (SUITESPARSE_INCLUDE_DIRS)
14+
# Already in cache, be silent
15+
SET(SUITESPARSE_FIND_QUIETLY TRUE)
16+
ENDIF (SUITESPARSE_INCLUDE_DIRS)
17+
18+
if( WIN32 )
19+
# Find cholmod part of the suitesparse library collection
20+
21+
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h
22+
PATHS "C:\\libs\\win32\\SuiteSparse\\Include" )
23+
24+
# Add cholmod include directory to collection include directories
25+
IF ( CHOLMOD_INCLUDE_DIR )
26+
list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} )
27+
ENDIF( CHOLMOD_INCLUDE_DIR )
28+
29+
30+
# find path suitesparse library
31+
FIND_PATH( SUITESPARSE_LIBRARY_DIRS
32+
amd.lib
33+
PATHS "C:\\libs\\win32\\SuiteSparse\\libs" )
34+
35+
# if we found the library, add it to the defined libraries
36+
IF ( SUITESPARSE_LIBRARY_DIRS )
37+
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 )
38+
ENDIF( SUITESPARSE_LIBRARY_DIRS )
39+
40+
else( WIN32 )
41+
IF(APPLE)
42+
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h
43+
PATHS /opt/local/include/ufsparse
44+
/usr/local/include )
45+
46+
FIND_PATH( SUITESPARSE_LIBRARY_DIR
47+
NAMES libcholmod.a
48+
PATHS /opt/local/lib
49+
/usr/local/lib )
50+
ELSE(APPLE)
51+
FIND_PATH( CHOLMOD_INCLUDE_DIR cholmod.h
52+
PATHS /usr/local/include
53+
/usr/include
54+
/usr/include/suitesparse/
55+
${CMAKE_SOURCE_DIR}/MacOS/Libs/cholmod
56+
PATH_SUFFIXES cholmod/ CHOLMOD/ )
57+
58+
FIND_PATH( SUITESPARSE_LIBRARY_DIR
59+
NAMES libcholmod.so libcholmod.a
60+
PATHS /usr/lib
61+
/usr/lib64
62+
/usr/lib/x86_64-linux-gnu
63+
/usr/local/lib )
64+
ENDIF(APPLE)
65+
66+
# Add cholmod include directory to collection include directories
67+
IF ( CHOLMOD_INCLUDE_DIR )
68+
list ( APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR} )
69+
ENDIF( CHOLMOD_INCLUDE_DIR )
70+
71+
# if we found the library, add it to the defined libraries
72+
IF ( SUITESPARSE_LIBRARY_DIR )
73+
74+
list ( APPEND SUITESPARSE_LIBRARIES amd)
75+
list ( APPEND SUITESPARSE_LIBRARIES btf)
76+
list ( APPEND SUITESPARSE_LIBRARIES camd)
77+
list ( APPEND SUITESPARSE_LIBRARIES ccolamd)
78+
list ( APPEND SUITESPARSE_LIBRARIES cholmod)
79+
list ( APPEND SUITESPARSE_LIBRARIES colamd)
80+
# list ( APPEND SUITESPARSE_LIBRARIES csparse)
81+
list ( APPEND SUITESPARSE_LIBRARIES cxsparse)
82+
list ( APPEND SUITESPARSE_LIBRARIES klu)
83+
# list ( APPEND SUITESPARSE_LIBRARIES spqr)
84+
list ( APPEND SUITESPARSE_LIBRARIES umfpack)
85+
86+
IF (APPLE)
87+
list ( APPEND SUITESPARSE_LIBRARIES suitesparseconfig)
88+
ENDIF (APPLE)
89+
90+
# Metis and spqr are optional
91+
FIND_LIBRARY( SUITESPARSE_METIS_LIBRARY
92+
NAMES metis
93+
PATHS ${SUITESPARSE_LIBRARY_DIR} )
94+
IF (SUITESPARSE_METIS_LIBRARY)
95+
list ( APPEND SUITESPARSE_LIBRARIES metis)
96+
ENDIF(SUITESPARSE_METIS_LIBRARY)
97+
98+
if(EXISTS "${CHOLMOD_INCLUDE_DIR}/SuiteSparseQR.hpp")
99+
SET(SUITESPARSE_SPQR_VALID TRUE CACHE BOOL "SuiteSparseSPQR valid")
100+
else()
101+
SET(SUITESPARSE_SPQR_VALID false CACHE BOOL "SuiteSparseSPQR valid")
102+
endif()
103+
104+
if(SUITESPARSE_SPQR_VALID)
105+
FIND_LIBRARY( SUITESPARSE_SPQR_LIBRARY
106+
NAMES spqr
107+
PATHS ${SUITESPARSE_LIBRARY_DIR} )
108+
IF (SUITESPARSE_SPQR_LIBRARY)
109+
list ( APPEND SUITESPARSE_LIBRARIES spqr)
110+
ENDIF (SUITESPARSE_SPQR_LIBRARY)
111+
endif()
112+
113+
ENDIF( SUITESPARSE_LIBRARY_DIR )
114+
115+
endif( WIN32 )
116+
117+
118+
IF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)
119+
IF(WIN32)
120+
list (APPEND SUITESPARSE_INCLUDE_DIRS ${CHOLMOD_INCLUDE_DIR}/../../UFconfig )
121+
ENDIF(WIN32)
122+
SET(SUITESPARSE_FOUND TRUE)
123+
MESSAGE(STATUS "Found SuiteSparse")
124+
ELSE (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)
125+
SET( SUITESPARSE_FOUND FALSE )
126+
MESSAGE(FATAL_ERROR "Unable to find SuiteSparse")
127+
ENDIF (SUITESPARSE_INCLUDE_DIRS AND SUITESPARSE_LIBRARIES)

0 commit comments

Comments
 (0)