/
CMakeLists.txt
117 lines (100 loc) · 3.87 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
PROJECT(SUNDIALSPlugin)
# Use our pre-built version unless instructed otherwise
IF(USE_PREBUILT_SUNDIALS_PACKAGE)
# Retrieve the plugin's binary file(s)
STRING(REPLACE "${${CMAKE_PROJECT_NAME}_SOURCE_DIR}/" ""
RELATIVE_PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/${REMOTE_EXTERNAL_BINARIES_DIR}")
IF(WIN32)
IF(RELEASE_MODE)
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} SUNDIALS.dll 1abd55bd4883fd64efdbb37804dbfba60e79f6b5)
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} SUNDIALS.lib 8bbc0f42247b58eef39177196e1874f20d77f4a5)
ELSE()
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} SUNDIALS.dll 133b4edf0b171a6e9b9aabdcef89157759924f8d)
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} SUNDIALS.lib b2592c893bb84ddb06d837677b3050cf95040d9c)
ENDIF()
ELSEIF(APPLE)
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} libSUNDIALS.dylib 6eb9f60c7da9b90a408ae4e30635a5c0a9d18e6a)
ELSE()
RETRIEVE_BINARY_FILE(${RELATIVE_PROJECT_SOURCE_DIR} libSUNDIALS.so 519f2d6e5aace35e86dc3322d497edb7f794b9f8)
ENDIF()
# Add the plugin as a binary
# Note: in the case of Windows, we must refer to the distribution directory
# as opposed to the plugins directory since we need the .lib file and
# it's only there...
IF(WIN32)
SET(SUNDIALS_PLUGIN_BINARY ${PROJECT_SOURCE_DIR}/${LOCAL_EXTERNAL_BINARIES_DIR}/${CMAKE_IMPORT_LIBRARY_PREFIX}SUNDIALS${CMAKE_IMPORT_LIBRARY_SUFFIX} PARENT_SCOPE)
ELSE()
SET(SUNDIALS_PLUGIN_BINARY ${DEST_PLUGINS_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}SUNDIALS${CMAKE_SHARED_LIBRARY_SUFFIX} PARENT_SCOPE)
ENDIF()
ADD_PLUGIN_BINARY(SUNDIALS
INCLUDE_DIRS
include
src
)
ELSE()
# Ignore some warnings on Windows
IF(WIN32)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244")
ENDIF()
# Add the plugin
SET(SUNDIALS_PLUGIN SUNDIALS PARENT_SCOPE)
ADD_PLUGIN(SUNDIALS
THIRD_PARTY
SOURCES
../../plugininfo.cpp
src/sundialsplugin.cpp
src/cvode/cvode.c
src/cvode/cvode_band.c
src/cvode/cvode_bandpre.c
src/cvode/cvode_bbdpre.c
src/cvode/cvode_dense.c
src/cvode/cvode_diag.c
src/cvode/cvode_direct.c
src/cvode/cvode_io.c
src/cvode/cvode_spbcgs.c
src/cvode/cvode_spgmr.c
src/cvode/cvode_spils.c
src/cvode/cvode_sptfqmr.c
src/ida/ida.c
src/ida/ida_band.c
src/ida/ida_bbdpre.c
src/ida/ida_dense.c
src/ida/ida_direct.c
src/ida/ida_ic.c
src/ida/ida_io.c
src/ida/ida_spbcgs.c
src/ida/ida_spgmr.c
src/ida/ida_spils.c
src/ida/ida_sptfqmr.c
src/kinsol/kinsol.c
src/kinsol/kinsol_band.c
src/kinsol/kinsol_bbdpre.c
src/kinsol/kinsol_dense.c
src/kinsol/kinsol_direct.c
src/kinsol/kinsol_io.c
src/kinsol/kinsol_spbcgs.c
src/kinsol/kinsol_spgmr.c
src/kinsol/kinsol_spils.c
src/kinsol/kinsol_sptfqmr.c
src/nvec_ser/nvector_serial.c
src/sundials/sundials_band.c
src/sundials/sundials_dense.c
src/sundials/sundials_direct.c
src/sundials/sundials_iterative.c
src/sundials/sundials_math.c
src/sundials/sundials_nvector.c
src/sundials/sundials_spbcgs.c
src/sundials/sundials_spgmr.c
src/sundials/sundials_sptfqmr.c
HEADERS_MOC
src/sundialsplugin.h
INCLUDE_DIRS
include
src
DEFINITIONS
BUILD_SUNDIALS_LIBRARY
NO_FPRINTF_OUTPUT
QT_MODULES
Core
)
ENDIF()