Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/Application/CMakeLists.txt
3196 views
1
SET(CMAKE_INCLUDE_CURRENT_DIR ON)
2
SET(CMAKE_AUTOMOC ON)
3
SET(CMAKE_AUTORCC ON)
4
SET(CMAKE_AUTOUIC OFF)
5
#FIND_PACKAGE(Qt4 COMPONENTS QtOpenGL QtXml QtScript QtGui QtCore REQUIRED)
6
7
SET(HEADERS src/bodypropertyeditor.h
8
src/boundarydivision.h
9
src/boundarypropertyeditor.h
10
src/checkmpi.h
11
src/dynamiceditor.h
12
src/edfeditor.h
13
src/egini.h
14
src/generalsetup.h
15
src/glcontrol.h
16
src/glwidget.h
17
src/helpers.h
18
src/mainwindow.h
19
src/materiallibrary.h
20
src/maxlimits.h
21
src/meshcontrol.h
22
src/meshingthread.h
23
src/meshtype.h
24
src/meshutils.h
25
src/operation.h
26
src/parallel.h
27
src/projectio.h
28
src/sifgenerator.h
29
src/sifwindow.h
30
src/solverparameters.h
31
src/summaryeditor.h
32
src/objectbrowser.h
33
src/solverlogwindow.h
34
src/newprojectdialog.h
35
plugins/egconvert.h
36
plugins/egdef.h
37
plugins/egmain.h
38
plugins/egmesh.h
39
plugins/egnative.h
40
plugins/egtypes.h
41
plugins/egutils.h
42
plugins/elmergrid_api.h
43
plugins/nglib_api.h
44
plugins/tetgen.h
45
plugins/tetlib_api.h
46
twod/renderarea.h
47
twod/twodview.h
48
twod/curveeditor.h)
49
50
51
SET(FORMS forms/bodypropertyeditor.ui
52
forms/boundarydivision.ui
53
forms/boundarypropertyeditor.ui
54
forms/generalsetup.ui
55
forms/glcontrol.ui
56
forms/materiallibrary.ui
57
forms/meshcontrol.ui
58
forms/parallel.ui
59
forms/solverparameters.ui
60
forms/summaryeditor.ui
61
forms/newproject.ui)
62
63
64
SET(SOURCES src/bodypropertyeditor.cpp
65
src/boundarydivision.cpp
66
src/boundarypropertyeditor.cpp
67
src/checkmpi.cpp
68
src/dynamiceditor.cpp
69
src/edfeditor.cpp
70
src/egini.cpp
71
src/generalsetup.cpp
72
src/glcontrol.cpp
73
src/glwidget.cpp
74
src/helpers.cpp
75
src/main.cpp
76
src/mainwindow.cpp
77
src/materiallibrary.cpp
78
src/maxlimits.cpp
79
src/meshcontrol.cpp
80
src/meshingthread.cpp
81
src/meshtype.cpp
82
src/meshutils.cpp
83
src/operation.cpp
84
src/parallel.cpp
85
src/projectio.cpp
86
src/sifgenerator.cpp
87
src/sifwindow.cpp
88
src/solverparameters.cpp
89
src/summaryeditor.cpp
90
src/solverlogwindow.cpp
91
src/objectbrowser.cpp
92
src/newprojectdialog.cpp
93
plugins/egconvert.cpp
94
plugins/egmain.cpp
95
plugins/egmesh.cpp
96
plugins/egnative.cpp
97
plugins/egutils.cpp
98
plugins/elmergrid_api.cpp
99
plugins/nglib_api.cpp
100
plugins/tetlib_api.cpp
101
twod/renderarea.cpp
102
twod/twodview.cpp
103
twod/curveeditor.cpp)
104
105
ADD_DEFINITIONS(-DEG_PLUGIN)
106
107
IF(WITH_QWT)
108
SET(HEADERS ${HEADERS} src/convergenceview.h)
109
SET(SOURCES ${SOURCES} src/convergenceview.cpp)
110
ENDIF(WITH_QWT)
111
112
IF(WITH_VTK AND NOT WITHOUT_VTKPOST)
113
ADD_DEFINITIONS(-DEG_VTK)
114
#FIND_PACKAGE(VTK REQUIRED)
115
IF(${VTK_VERSION} VERSION_LESS 8.90)
116
INCLUDE(${VTK_USE_FILE})
117
ENDIF()
118
SET(HEADERS ${HEADERS}
119
vtkpost/axes.h
120
vtkpost/featureedge.h
121
vtkpost/vtkpost.h
122
vtkpost/isosurface.h
123
vtkpost/isocontour.h
124
vtkpost/epmesh.h
125
vtkpost/colorbar.h
126
vtkpost/meshpoint.h
127
vtkpost/meshedge.h
128
vtkpost/surface.h
129
vtkpost/preferences.h
130
vtkpost/vector.h
131
vtkpost/readepfile.h
132
vtkpost/streamline.h
133
vtkpost/timestep.h
134
vtkpost/ecmaconsole.h
135
vtkpost/text.h)
136
137
SET(FORMS ${FORMS}
138
vtkpost/axes.ui
139
vtkpost/featureedge.ui
140
vtkpost/isosurface.ui
141
vtkpost/isocontour.ui
142
vtkpost/colorbar.ui
143
vtkpost/surface.ui
144
vtkpost/meshpoint.ui
145
vtkpost/meshedge.ui
146
vtkpost/preferences.ui
147
vtkpost/vector.ui
148
vtkpost/readepfile.ui
149
vtkpost/streamline.ui
150
vtkpost/timestep.ui
151
vtkpost/text.ui)
152
153
SET(SOURCES ${SOURCES}
154
vtkpost/axes.cpp
155
vtkpost/featureedge.cpp
156
vtkpost/vtkpost.cpp
157
vtkpost/isosurface.cpp
158
vtkpost/isocontour.cpp
159
vtkpost/epmesh.cpp
160
vtkpost/colorbar.cpp
161
vtkpost/meshpoint.cpp
162
vtkpost/meshedge.cpp
163
vtkpost/surface.cpp
164
vtkpost/preferences.cpp
165
vtkpost/vector.cpp
166
vtkpost/readepfile.cpp
167
vtkpost/streamline.cpp
168
vtkpost/timestep.cpp
169
vtkpost/ecmaconsole.cpp
170
vtkpost/text.cpp)
171
172
IF(WITH_MATC)
173
SET(HEADERS ${HEADERS} vtkpost/matc.h vtkpost/mc.h)
174
SET(FORMS ${FORMS} vtkpost/matc.ui)
175
SET(SOURCES ${SOURCES} vtkpost/matc.cpp)
176
ENDIF(WITH_MATC)
177
178
ENDIF()
179
180
IF(WITH_OCC)
181
182
# set(ELMER_USE_OCC_VARIANT "Official Version" CACHE STRING "Official OpenCASCADE version or community edition")
183
# set_property(CACHE ELMER_USE_OCC_VARIANT PROPERTY STRINGS
184
# "Official Version"
185
# "Community Edition"
186
# )
187
188
SET(HEADERS ${HEADERS} cad/cadview.h cad/cadpreferences.h)
189
SET(FORMS ${FORMS} cad/cadpreferences.ui)
190
SET(SOURCES ${SOURCES} cad/cadview.cpp cad/cadpreferences.cpp)
191
ENDIF()
192
193
IF(WITH_QT6)
194
SET(DESIRED_QT_VERSION "6")
195
QT6_WRAP_UI(UI_HEADERS ${FORMS})
196
QT6_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc)
197
ADD_DEFINITIONS(-DWITH_QT6)
198
ELSEIF(WITH_QT5)
199
SET(DESIRED_QT_VERSION "5")
200
QT5_WRAP_UI(UI_HEADERS ${FORMS})
201
QT5_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc)
202
ADD_DEFINITIONS(-DWITH_QT5)
203
ELSE()
204
SET(DESIRED_QT_VERSION "4")
205
QT4_WRAP_UI(UI_HEADERS ${FORMS})
206
QT4_ADD_RESOURCES(UI_RESOURCES ElmerGUI.qrc)
207
INCLUDE(${QT_USE_FILE})
208
ENDIF()
209
ADD_DEFINITIONS(${QT_DEFINITIONS})
210
211
IF(MINGW AND WIN32)
212
SET(CMAKE_RC_COMPILER_INIT windres)
213
ENABLE_LANGUAGE(RC)
214
SET(CMAKE_RC_COMPILE_OBJECT
215
"<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>")
216
SET(SOURCES ${SOURCES} ElmerGUI.rc)
217
ENDIF()
218
219
ADD_EXECUTABLE(ElmerGUI WIN32 ${SOURCES} ${UI_HEADERS} ${UI_RESOURCES})
220
SET(CPACK_PACKAGE_EXECUTABLES ElmerGUI "ElmerGUI")
221
222
IF(WITH_QT6)
223
TARGET_LINK_LIBRARIES(ElmerGUI Qt6::OpenGLWidgets Qt6::Qml Qt6::Xml Qt6::Gui Qt6::Core Qt6::Svg Qt6::Widgets Qt6::PrintSupport Qt6::OpenGLWidgets)
224
ELSEIF(WITH_QT5)
225
QT5_USE_MODULES(ElmerGUI OpenGL Xml Script Gui Core Svg Widgets PrintSupport)
226
ENDIF()
227
228
TARGET_LINK_LIBRARIES(ElmerGUI ng ${QT_LIBRARIES})
229
IF(NOT(WIN32) AND NOT(APPLE))
230
TARGET_LINK_LIBRARIES(ElmerGUI GL GLU)
231
ENDIF()
232
233
IF(APPLE)
234
SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES COMPILE_FLAGS "-framework OpenGL -framework GLU")
235
SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES LINK_FLAGS "-Wl,-framework,OpenGL")
236
ENDIF()
237
238
239
IF(WIN32)
240
TARGET_LINK_LIBRARIES(ElmerGUI opengl32 glu32 psapi)
241
ADD_DEFINITIONS(-DPSAPI_VERSION=1)
242
ENDIF(WIN32)
243
244
IF(WITH_MATC)
245
TARGET_LINK_LIBRARIES(ElmerGUI matc)
246
ENDIF()
247
248
IF(WITH_QWT)
249
INCLUDE_DIRECTORIES(${QWT_INCLUDE_DIR})
250
TARGET_LINK_LIBRARIES(ElmerGUI ${QWT_LIBRARY})
251
ENDIF()
252
253
IF(WITH_VTK)
254
TARGET_LINK_LIBRARIES(ElmerGUI ${VTK_LIBRARIES})
255
IF(VTK_MAJOR_VERSION VERSION_LESS 6)
256
TARGET_LINK_LIBRARIES(ElmerGUI QVTK)
257
ENDIF()
258
IF(ELMER_INSTANTIATE_VTK_ARRAY_TEMPLATE)
259
TARGET_COMPILE_DEFINITIONS(ElmerGUI PRIVATE ELMER_INSTANTIATE_VTK_ARRAY_TEMPLATE)
260
ENDIF()
261
ENDIF()
262
263
IF(WITH_OCC)
264
TARGET_LINK_LIBRARIES(ElmerGUI ${ELMER_OCC_LIBS})
265
INCLUDE_DIRECTORIES(${OpenCASCADE_INCLUDE_DIR})
266
IF(UNIX)
267
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DHAVE_IOSTREAM -DHAVE_FSTREAM -DHAVE_LIMITS_H)
268
ELSEIF(WIN32)
269
ADD_DEFINITIONS(-DWNT -DCSFDB)
270
ENDIF()
271
ENDIF()
272
273
IF(WITH_PYTHONQT)
274
MESSAGE(WARNING "PythonQT is not tested.")
275
INCLUDE_DIRECTORIES(${PYTHONQT_INCLUDE_DIR} ${PYTHON_INCLUDE_DIR})
276
TARGET_LINK_LIBRARIES(ElmerGUI PythonQt)
277
ENDIF()
278
279
IF(NOT(WIN32) AND ELMERSOLVER_RPATH_STRING)
280
SET_TARGET_PROPERTIES(ElmerGUI PROPERTIES INSTALL_RPATH "${ELMERSOLVER_RPATH_STRING}")
281
ENDIF()
282
INSTALL(TARGETS ElmerGUI RUNTIME DESTINATION "bin" COMPONENT "elmergui")
283
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/edf DESTINATION "share/ElmerGUI" COMPONENT "elmergui")
284
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/edf-extra DESTINATION "share/ElmerGUI" COMPONENT "elmergui")
285
286
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/icons/TangoElmerGUI DESTINATION "share/ElmerGUI/icons" COMPONENT "elmergui")
287
288