CMakeLists.txt 16.6 KB
Newer Older
1
project(AMDIS)
Naumann, Andreas's avatar
Naumann, Andreas committed
2

3
cmake_minimum_required(VERSION 2.6)
4
5
6

SET(LIB_DIR ${AMDIS_SOURCE_DIR}/lib)
SET(SOURCE_DIR ${AMDIS_SOURCE_DIR}/src)
7

8
#TODO: use the cmake build type
9
SET(MTL_INCLUDE_DIR ${LIB_DIR}/mtl4/ CACHE PATH "mtl4 directory")
10

11
12
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DDEBUG=0") #-Wno-unused-but-set-variable
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 -O0") #-Wno-unused-but-set-variable
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if(NOT CurrentRevision)
	find_package(Subversion)
	if(Subversion_FOUND)
	  Subversion_WC_INFO(${CMAKE_CURRENT_SOURCE_DIR} svn_info)
	  #message("svn-rev: ${svn_info_WC_REVISION}")
	  set(CurrentRevision "0.9.${svn_info_WC_REVISION}")
	endif()
endif()
if(NOT AMDIS_MAJOR)
  set(AMDIS_MAJOR "0")
endif()
if(NOT AMDIS_MINOR)
  set(AMDIS_MINOR "9")
endif()
27
set(COMPILEFLAGS "-DAMDIS_VERSION=${CurrentRevision}")
28
29
30
31
32
33

#define the build type, empty can be everything and nothing
if(CMAKE_BUILD_TYPE STREQUAL "")
	set(CMAKE_BUILD_TYPE "Release")
endif()

Naumann, Andreas's avatar
Naumann, Andreas committed
34
#option(ENABLE_INTEL "use intel compiler" false)
35
SET(ENABLE_PARALLEL_DOMAIN "OFF" CACHE STRING "use parallel domain decomposition. please set to one of: PMTL, PETSC, OFF" )
Naumann, Andreas's avatar
Naumann, Andreas committed
36
37
option(USE_PETSC_DEV false)
option(ENABLE_ZOLTAN false)
38
option(ENABLE_UMFPACK "Use of UMFPACK solver" false)
Praetorius, Simon's avatar
Praetorius, Simon committed
39
option(ENABLE_PNG "use png reader/writer" false)
40
option(ENABLE_BDDCML "Use of BDDCML library" false)
Naumann, Andreas's avatar
Naumann, Andreas committed
41
42
43
44
45
46
47
48
49

if(ENABLE_INTEL)
	Message("please set the icc manually")
	INCLUDE (CMakeForceCompiler)
	CMAKE_FORCE_C_COMPILER(icc "intel C compiler")
	CMAKE_FORCE_CXX_COMPILER(icpc "intel C++ compiler")
	#SET(CMAKE_C_COMPILER "icc")
endif(ENABLE_INTEL)

50

51
52
find_package(Boost 1.42 REQUIRED)
if(Boost_FOUND)
53
  list(APPEND AMDIS_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
54
55
56
57
58
  message("boost lib-dirs: ${Boost_LIBRARY_DIRS}")
  message("use the boost dir: ${Boost_INCLUDE_DIR}")
  if(WIN32)
	message("the windows find_boost does not set the boost library paths, please set it")
	SET(Boost_LIBRARY_DIRS CACHE PATH "The directory containing the boost libraries")
59
  endif(WIN32)
60
  list(APPEND AMDIS_LINK_DIRS ${Boost_LIBRARY_DIRS})
61
endif(Boost_FOUND)
Naumann, Andreas's avatar
Naumann, Andreas committed
62

63

Thomas Witkowski's avatar
Thomas Witkowski committed
64
65
SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
	      ${SOURCE_DIR}/AdaptInfo.cc
66
	      ${SOURCE_DIR}/AdaptInstationary.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
67
	      ${SOURCE_DIR}/AdaptStationary.cc
68
	      ${SOURCE_DIR}/AMDiS.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
69
70
71
72
	      ${SOURCE_DIR}/Assembler.cc
	      ${SOURCE_DIR}/BasisFunction.cc
	      ${SOURCE_DIR}/Boundary.cc
	      ${SOURCE_DIR}/BoundaryManager.cc
73
	      ${SOURCE_DIR}/BoundaryObject.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
74
75
76
77
78
79
	      ${SOURCE_DIR}/Cholesky.cc
	      ${SOURCE_DIR}/CoarseningManager.cc
	      ${SOURCE_DIR}/CoarseningManager1d.cc
	      ${SOURCE_DIR}/CoarseningManager2d.cc
	      ${SOURCE_DIR}/CoarseningManager3d.cc
	      ${SOURCE_DIR}/ComponentTraverseInfo.cc
Praetorius, Simon's avatar
Praetorius, Simon committed
80
              ${SOURCE_DIR}/CouplingIterationInterface.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
81
82
83
84
85
	      ${SOURCE_DIR}/CreatorMap.cc
	      ${SOURCE_DIR}/DOFAdmin.cc
	      ${SOURCE_DIR}/DOFIndexed.cc
	      ${SOURCE_DIR}/DOFMatrix.cc
	      ${SOURCE_DIR}/DOFVector.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
86
	      ${SOURCE_DIR}/Debug.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
	      ${SOURCE_DIR}/DirichletBC.cc
	      ${SOURCE_DIR}/DualTraverse.cc
	      ${SOURCE_DIR}/ElInfo.cc
	      ${SOURCE_DIR}/ElInfo1d.cc
	      ${SOURCE_DIR}/ElInfo2d.cc
	      ${SOURCE_DIR}/ElInfo3d.cc
	      ${SOURCE_DIR}/ElInfoStack.cc
	      ${SOURCE_DIR}/Element.cc
	      ${SOURCE_DIR}/ElementData.cc
	      ${SOURCE_DIR}/ElementDofIterator.cc
	      ${SOURCE_DIR}/FiniteElemSpace.cc
	      ${SOURCE_DIR}/FirstOrderAssembler.cc
	      ${SOURCE_DIR}/FirstOrderTerm.cc
	      ${SOURCE_DIR}/FixVec.cc
	      ${SOURCE_DIR}/Global.cc
	      ${SOURCE_DIR}/GlobalDOFNumbering.cc
	      ${SOURCE_DIR}/GlobalElementNumbering.cc
Praetorius, Simon's avatar
Praetorius, Simon committed
104
              ${SOURCE_DIR}/Initfile.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
105
106
107
108
109
110
111
112
113
114
115
116
117
	      ${SOURCE_DIR}/Lagrange.cc
	      ${SOURCE_DIR}/LeafData.cc
	      ${SOURCE_DIR}/Line.cc
	      ${SOURCE_DIR}/MacroElement.cc
	      ${SOURCE_DIR}/Marker.cc
	      ${SOURCE_DIR}/Mesh.cc
	      ${SOURCE_DIR}/MeshStructure.cc
	      ${SOURCE_DIR}/Operator.cc
	      ${SOURCE_DIR}/OperatorTerm.cc
	      ${SOURCE_DIR}/Parametric.cc
	      ${SOURCE_DIR}/PeriodicBC.cc
	      ${SOURCE_DIR}/ProblemImplicit.cc
	      ${SOURCE_DIR}/ProblemInstat.cc
118
119
120
	      ${SOURCE_DIR}/ProblemInterpol.cc
	      ${SOURCE_DIR}/ProblemStat.cc
	      ${SOURCE_DIR}/ProblemStatDbg.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
121
122
123
124
125
126
127
128
129
130
131
132
133
134
	      ${SOURCE_DIR}/Projection.cc
	      ${SOURCE_DIR}/QPInfo.cc
	      ${SOURCE_DIR}/QPsiPhi.cc
	      ${SOURCE_DIR}/Quadrature.cc
	      ${SOURCE_DIR}/RCNeighbourList.cc
	      ${SOURCE_DIR}/Recovery.cc
	      ${SOURCE_DIR}/RefinementManager.cc
	      ${SOURCE_DIR}/RefinementManager1d.cc
	      ${SOURCE_DIR}/RefinementManager2d.cc
	      ${SOURCE_DIR}/RefinementManager3d.cc
	      ${SOURCE_DIR}/RobinBC.cc
	      ${SOURCE_DIR}/ScalableQuadrature.cc
	      ${SOURCE_DIR}/SecondOrderAssembler.cc
	      ${SOURCE_DIR}/SecondOrderTerm.cc
135
	      ${SOURCE_DIR}/Serializer.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
136
	      ${SOURCE_DIR}/StandardProblemIteration.cc
137
	      ${SOURCE_DIR}/SolverMatrix.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
138
139
140
141
142
	      ${SOURCE_DIR}/SubAssembler.cc
	      ${SOURCE_DIR}/SubElInfo.cc
	      ${SOURCE_DIR}/SubQuadrature.cc
	      ${SOURCE_DIR}/SurfaceQuadrature.cc
	      ${SOURCE_DIR}/Tetrahedron.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
143
	      ${SOURCE_DIR}/Timer.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
144
145
146
147
148
	      ${SOURCE_DIR}/Traverse.cc
	      ${SOURCE_DIR}/Triangle.cc
	      ${SOURCE_DIR}/VertexVector.cc
	      ${SOURCE_DIR}/ZeroOrderAssembler.cc
	      ${SOURCE_DIR}/ZeroOrderTerm.cc
149
150
151
152
	      ${SOURCE_DIR}/est/Estimator.cc
	      ${SOURCE_DIR}/est/RecoveryEstimator.cc
	      ${SOURCE_DIR}/est/ResidualEstimator.cc
	      ${SOURCE_DIR}/est/SimpleResidualEstimator.cc
153
154
	      ${SOURCE_DIR}/io/ArhReader.cc
	      ${SOURCE_DIR}/io/ArhWriter.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
155
156
157
158
159
160
161
	      ${SOURCE_DIR}/io/DofWriter.cc
	      ${SOURCE_DIR}/io/ElementFileWriter.cc
	      ${SOURCE_DIR}/io/FileWriter.cc
	      ${SOURCE_DIR}/io/GNUPlotWriter.cc
	      ${SOURCE_DIR}/io/MacroInfo.cc
	      ${SOURCE_DIR}/io/MacroReader.cc
	      ${SOURCE_DIR}/io/MacroWriter.cc
Praetorius, Simon's avatar
Praetorius, Simon committed
162
	      ${SOURCE_DIR}/io/PngReader.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
163
164
	      ${SOURCE_DIR}/io/PngWriter.cc
	      ${SOURCE_DIR}/io/PovrayWriter.cc
165
	      ${SOURCE_DIR}/io/Spreadsheet.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
166
167
168
	      ${SOURCE_DIR}/io/ValueReader.cc
	      ${SOURCE_DIR}/io/ValueWriter.cc
	      ${SOURCE_DIR}/io/VtkWriter.cc
169
	      ${SOURCE_DIR}/io/VtkVectorWriter.cc
170
	      ${SOURCE_DIR}/nonlin/ProblemNonLin.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
171
	      ${SOURCE_DIR}/time/RosenbrockAdaptInstationary.cc
172
	      ${SOURCE_DIR}/time/RosenbrockMethod.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
173
	      ${SOURCE_DIR}/time/RosenbrockStationary.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
174
175
	      )

176
if(ENABLE_PARALLEL_DOMAIN)
177
178
179
	
	### Search for MPI compiler and get compile flags and include paths. ###

Naumann, Andreas's avatar
Naumann, Andreas committed
180
	find_package(MPI REQUIRED)
181
	if(MPI_FOUND)
182
	  list(APPEND COMPILEFLAGS "${MPI_COMPILE_FLAGS}")
183
184
	  include_directories(${MPI_INCLUDE_PATH})
	endif(MPI_FOUND)
185
 
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209


	### Search for ParMetis ###

	find_file(PARMETIS_HEADER_FILE "parmetis.h" PATH ENV CPATH)
	if(PARMETIS_HEADER_FILE)
		get_filename_component(PARMETIS_INCLUDE_PATH "${PARMETIS_HEADER_FILE}" PATH CACHE)
		include_directories(${PARMETIS_INCLUDE_PATH})
	else()
		message(FATAL_ERROR "Could not find ParMetis header file!")
	endif(PARMETIS_HEADER_FILE)

	find_file(PARMETIS_LIB_FILE "libparmetis.a" PATH ENV LIBRARY_PATH)
	if(PARMETIS_LIB_FILE)
		get_filename_component(PARMETIS_LINK_PATH "${PARMETIS_LIB_FILE}" PATH CACHE)
		link_directories(${PARMETIS_LINK_PATH})
	else()
		message(FATAL_ERROR "Could not find ParMetis library file!")
	endif(PARMETIS_LIB_FILE)


	
	### Search for Zoltan ###

210
	if(ENABLE_ZOLTAN)
211
212
	  find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h" PATH ENV CPATH)
	  if(ZOLTAN_HEADER_FILE)
213
		get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
214
		include_directories(${ZOLTAN_HEADER_DIR})
215
	  else()
216
217
218
		message(FATAL_ERROR "Could not find Zoltan include file!")
	  endif(ZOLTAN_HEADER_FILE)

219
	  list(APPEND COMPILEFLAGS "-DHAVE_ZOLTAN")
220
221
	endif(ENABLE_ZOLTAN)

222
223


224
	list(APPEND COMPILEFLAGS "-DHAVE_PARALLEL_DOMAIN_AMDIS=1")
Naumann, Andreas's avatar
Naumann, Andreas committed
225
	SET(PARALLEL_DOMAIN_AMDIS_SRC
226
               	${SOURCE_DIR}/parallel/DofComm.cc
227
		${SOURCE_DIR}/parallel/CheckerPartitioner.cc
228
		${SOURCE_DIR}/parallel/ElementObjectDatabase.cc
229
		${SOURCE_DIR}/parallel/InteriorBoundary.cc
230
		${SOURCE_DIR}/parallel/MeshDistributor.cc 
231
		${SOURCE_DIR}/parallel/MeshLevelData.cc 
232
		${SOURCE_DIR}/parallel/MeshManipulation.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
233
		${SOURCE_DIR}/parallel/MeshPartitioner.cc
234
		${SOURCE_DIR}/parallel/MpiHelper.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
235
		${SOURCE_DIR}/parallel/ParallelDebug.cc
236
		${SOURCE_DIR}/parallel/ParallelDofMapping.cc
237
		${SOURCE_DIR}/parallel/ParallelProblemStatBase.cc
238
		${SOURCE_DIR}/parallel/PeriodicMap.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
239
240
                ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc
		${SOURCE_DIR}/parallel/StdMpi.cc
241
		${SOURCE_DIR}/parallel/ZoltanPartitioner.cc)
242
243
244
245
246
247
		
	if(ENABLE_PARALLEL_DOMAIN STREQUAL "PETSC")
		set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};/usr/share/cmake-2.8/Modules/;${CMAKE_SOURCE_DIR}/")
		set(PETSC_EXECUTABLE_RUNS ON)
		find_package(PETSc REQUIRED)
		include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
248
		list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
249
250
251
		list(APPEND PARALLEL_DOMAIN_AMDIS_SRC 
			${SOURCE_DIR}/parallel/BddcMlSolver.cc
		        ${SOURCE_DIR}/parallel/PetscMultigridPrecon.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
252
			${SOURCE_DIR}/parallel/PetscSolver.cc
253
254
255
			${SOURCE_DIR}/parallel/PetscProblemStat.cc
			${SOURCE_DIR}/parallel/PetscSolverFeti.cc
			${SOURCE_DIR}/parallel/PetscSolverGlobalMatrix.cc
256
			${SOURCE_DIR}/parallel/PetscSolverGlobalBlockMatrix.cc
257
258
			${SOURCE_DIR}/parallel/PetscSolverSchur.cc
			${SOURCE_DIR}/parallel/SubDomainSolver.cc)
259
260
261
262
263
	elseif(ENABLE_PARALLEL_DOMAIN STREQUAL "PMTL")
		set(MTL_INCLUDE_DIR "")
		find_package(MTL REQUIRED)
		list(APPEND COMPILEFLAGS "-DMTL_HAS_MPI" "-DHAVE_PARALLEL_MTL4")
		list(APPEND PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/Mtl4Solver.cc)
264
		list(APPEND AMDIS_LIBS ${MTL_LIBRARIES})
265
	else()
266
		message(SEND_ERROR "Set the domain-decomposition version correctly.")
267
268
	endif()

269
270
	INSTALL(FILES ResolveCompilerPaths.cmake FindPackageMultipass.cmake FindPETSc.cmake
		DESTINATION share/amdis/)
271
	if(USE_PETSC_DEV)
272
	  list(APPEND COMPILEFLAGS "-DHAVE_PETSC_DEV")
Naumann, Andreas's avatar
Naumann, Andreas committed
273
	endif( USE_PETSC_DEV)
Naumann, Andreas's avatar
Naumann, Andreas committed
274
275
endif(ENABLE_PARALLEL_DOMAIN)

276

277
278

if(ENABLE_UMFPACK)
279
	find_file(UMFPACK_H umfpack.h
280
			    HINTS ENV CPATH /usr/include /usr/include/suitesparse /usr/include/ufsparse
281
282
			    DOC "headerfile umfpack.h for UMFPACK")
	if(UMFPACK_H)
283
284
		get_filename_component(UMFPACK_PATH ${UMFPACK_H} PATH)
		include_directories(${UMFPACK_PATH} ${UFCONFIG_PATH} ${AMD_PATH})
285
		list(APPEND COMPILEFLAGS "-DHAVE_UMFPACK=1" "-DMTL_HAS_UMFPACK")
286
	else()
Praetorius, Simon's avatar
Praetorius, Simon committed
287
		message(FATAL_ERROR "Could not find the UMFPACK header umfpack.h.")
288
	endif()
289
	SET(RPM_DEPEND_STR "blas")
Naumann, Andreas's avatar
Naumann, Andreas committed
290
endif(ENABLE_UMFPACK)
Praetorius, Simon's avatar
Praetorius, Simon committed
291
292
293
294
295
296
297
298
299
300
301
302
303
304


if(ENABLE_PNG)
	find_file(PNG_H png.h
			    HINTS ENV CPATH /usr/include
			    DOC "headerfile png.h for PNG-READER")
	if(PNG_H)
		get_filename_component(PNG_PATH ${PNG_H} PATH)
		include_directories(${PNG_PATH})
		list(APPEND COMPILEFLAGS "-DHAVE_PNG=1")
	else()
		message(FATAL_ERROR "Could not find the PNG header png.h.")
	endif()
endif(ENABLE_PNG)
Naumann, Andreas's avatar
Naumann, Andreas committed
305

306
307

if(ENABLE_BDDCML)
308
309
	SET(BDDCML_LINK_LIST "" CACHE STRING "Further libraries to be linked with BDDCML")
		
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
	find_file(BDDCML_H bddcml_interface_c.h
			   HINTS ENV CPATH
			   DOC "Header bddcml_interface_c.h for the BDDCML library.")

	if(BDDCML_H)
		get_filename_component(BDDCML_PATH ${BDDCML_H} PATH)
		include_directories(${BDDCML_PATH})		
		list(APPEND COMPILEFLAGS "-DHAVE_BDDC_ML=1")
		list(APPEND COMPILEFLAGS "-DAdd_")
	else()
		message(FATAL_ERROR "Could not find BDDCML headers.")
	endif()

	find_library(BDDCML_LIB bddcml
				HINTS ENV LIBRARY_PATH
				DOC "BDDCML library")

	if(BDDCML_LIB)
		list(APPEND AMDIS_LIBS ${BDDCML_LIB})
	else()
		message(FATAL_ERROR "Could not find the BDDCML library")
	endif()
332

333
334
335
336
endif(ENABLE_BDDCML)



337
SET(COMPOSITE_SOURCE_DIR ${SOURCE_DIR}/compositeFEM)
Thomas Witkowski's avatar
Thomas Witkowski committed
338
339
340
341
342
343
344
345
SET(COMPOSITE_FEM_SRC ${COMPOSITE_SOURCE_DIR}/CFE_Integration.cc 
		      ${COMPOSITE_SOURCE_DIR}/CFE_NormAndErrorFcts.cc 
		      ${COMPOSITE_SOURCE_DIR}/CompositeFEMMethods.cc 
		      ${COMPOSITE_SOURCE_DIR}/CompositeFEMOperator.cc 
		      ${COMPOSITE_SOURCE_DIR}/LevelSetAdaptMesh.cc 
		      ${COMPOSITE_SOURCE_DIR}/PenaltyOperator.cc 
		      ${COMPOSITE_SOURCE_DIR}/ElementLevelSet.cc 
		      ${COMPOSITE_SOURCE_DIR}/SubPolytope.cc 
Naumann, Andreas's avatar
Naumann, Andreas committed
346
347
		      ${COMPOSITE_SOURCE_DIR}/SubElementAssembler.cc )

348
349
350
351
set(REINIT_SOURCE_DIR ${SOURCE_DIR}/reinit)
file(GLOB REINIT_SRC ${REINIT_SOURCE_DIR}/*.cc)
include_directories(${REINIT_SOURCE_DIR})

352
353

#muparser includes
354
set(MUPARSER_SOURCE_DIR ${AMDIS_SOURCE_DIR}/lib/muparser_v134)
355
file(GLOB MUPARSER_SRC ${MUPARSER_SOURCE_DIR}/src/*.cpp)
356
list(APPEND AMDIS_INCLUDE_DIRS ${MUPARSER_SOURCE_DIR}/include)
357

Naumann, Andreas's avatar
Naumann, Andreas committed
358
#mtl4 includes
359
list(APPEND AMDIS_INCLUDE_DIRS ${MTL_INCLUDE_DIR})
360
#include_directories(${MTL_INCLUDE_DIR})
361
list(APPEND AMDIS_INCLUDE_DIRS ${SOURCE_DIR})
362
#include_directories(${SOURCE_DIR})
363
include_directories(${AMDIS_INCLUDE_DIRS})
Naumann, Andreas's avatar
Naumann, Andreas committed
364

365
add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC})
Naumann, Andreas's avatar
Naumann, Andreas committed
366
add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC})
Praetorius, Simon's avatar
Praetorius, Simon committed
367
add_library(reinit SHARED ${REINIT_SRC})
368
add_library(muparser SHARED ${MUPARSER_SRC})
Praetorius, Simon's avatar
Praetorius, Simon committed
369
370
#target_link_libraries(compositeFEM amdis)
#target_link_libraries(reinit amdis)
371
list(APPEND AMDIS_LIBS amdis ${Boost_LIBRARIES})
372

373
if(WIN32)
374
	list(APPEND COMPILEFLAGS "-D_SCL_SECURE_NO_WARNINGS" "-D_CRT_SECURE_NO_WARNINGS")
375
endif(WIN32)
376
message("compileflags: ${COMPILEFLAGS}")
377
378
#SET_TARGET_PROPERTIES(amdis PROPERTIES COMPILE_FLAGS "${COMPILEFLAGS}")
add_definitions(${COMPILEFLAGS})
379

Naumann, Andreas's avatar
Naumann, Andreas committed
380
381
382
383
if(ENABLE_MARMOT)
	Message("please set marmotcc manually")
endif(ENABLE_MARMOT)

384
#dont change this destination. the GUI depends on it to guess the buildsystem
385

386
FILE(GLOB HEADERS "${SOURCE_DIR}/*.h")
387
388
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
389
390
list(APPEND deb_add_dirs "include/amdis")

391
FILE(GLOB HEADERS "${SOURCE_DIR}/*.hh")
392
393
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
394

395
FILE(GLOB HEADERS "${SOURCE_DIR}/parallel/*.h")
396
397
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/parallel/)
Naumann, Andreas's avatar
Naumann, Andreas committed
398
399
list(APPEND deb_add_dirs "include/amdis/parallel")

400
401
402
403
404
FILE(GLOB HEADERS "${SOURCE_DIR}/nonlin/*.h")
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/nonlin/)
list(APPEND deb_add_dirs "include/amdis/nonlin")

405
406
407
408
409
FILE(GLOB HEADERS "${SOURCE_DIR}/est/*.h")
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/est/)
list(APPEND deb_add_dirs "include/amdis/est")

410
FILE(GLOB HEADERS "${SOURCE_DIR}/time/*.h")
411
412
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/time/)
Naumann, Andreas's avatar
Naumann, Andreas committed
413
414
list(APPEND deb_add_dirs "include/amdis/time")

415
FILE(GLOB HEADERS "${SOURCE_DIR}/itl/*.hpp")
416
417
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/itl)
Naumann, Andreas's avatar
Naumann, Andreas committed
418
419
list(APPEND deb_add_dirs "include/amdis/itl")

420
FILE(GLOB HEADERS "${SOURCE_DIR}/io/*.h")
Naumann, Andreas's avatar
Naumann, Andreas committed
421
422
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/io)
Naumann, Andreas's avatar
Naumann, Andreas committed
423
424
list(APPEND deb_add_dirs "include/amdis/io")

425
FILE(GLOB HEADERS "${SOURCE_DIR}/io/*.hh")
Naumann, Andreas's avatar
Naumann, Andreas committed
426
427
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/io)
428

Praetorius, Simon's avatar
Praetorius, Simon committed
429
430
431
432
433
434
435
436
437
438
FILE(GLOB HEADERS "${REINIT_SOURCE_DIR}/*.h")
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/reinit)
list(APPEND deb_add_dirs "include/amdis/reinit")

FILE(GLOB HEADERS "${COMPOSITE_SOURCE_DIR}/*.h")
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/compositeFEM)
list(APPEND deb_add_dirs "include/amdis/compositeFEM")

439
440
441
442
443
FILE(GLOB HEADERS "${MUPARSER_SOURCE_DIR}/include/*.h")
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/muparser)
list(APPEND deb_add_dirs "include/amdis/muparser")

Praetorius, Simon's avatar
Praetorius, Simon committed
444
list(APPEND deb_add_dirs "lib/amdis")
445
install(TARGETS amdis compositeFEM reinit muparser
Praetorius, Simon's avatar
Praetorius, Simon committed
446
447
	LIBRARY DESTINATION lib/amdis/ )

448
449
configure_file(${AMDIS_SOURCE_DIR}/AMDISConfig.cmake.in
		${AMDIS_BINARY_DIR}/AMDISConfig.cmake
450
451
		@ONLY
	      )
452

453
INSTALL(FILES ${AMDIS_BINARY_DIR}/AMDISConfig.cmake 
454
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
455
456
list(APPEND deb_add_dirs "share/amdis/")

457
INSTALL(FILES ${AMDIS_SOURCE_DIR}/AMDISUse.cmake 
458
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
459

460
#install mtl
461
INSTALL(DIRECTORY ${AMDIS_SOURCE_DIR}/lib/mtl4/
462
463
464
465
466
467
	DESTINATION include/amdis/mtl4/
	FILES_MATCHING PATTERN "*.hpp"
	PATTERN ".svn" EXCLUDE
	PATTERN ".svn/*" EXCLUDE
	PATTERN "mtl4/libs" EXCLUDE
	PATTERN "mtl4/extern" EXCLUDE
468
       )
Naumann, Andreas's avatar
Naumann, Andreas committed
469
FILE(GLOB_RECURSE mtl4_files 
470
471
		RELATIVE ${AMDIS_SOURCE_DIR}/lib/mtl4/boost/ 
		${AMDIS_SOURCE_DIR}/lib/mtl4/boost/*.hpp)
Naumann, Andreas's avatar
Naumann, Andreas committed
472
473
foreach(mtl4_file in ${mtl4_files})
 get_filename_component(mtl4File_path ${mtl4_file} PATH)
474
 list(APPEND deb_add_dirs "include/amdis/mtl4/boost/${mtl4File_path}")
Naumann, Andreas's avatar
Naumann, Andreas committed
475
476
endforeach(mtl4_file)
list(REMOVE_DUPLICATES deb_add_dirs)
477
478

#PACKAGES
479
set(CPACK_PACKAGE_NAME "AMDIS")
480
set(CPACK_PACKAGE_CONTACT "Andreas.Naumann@tu-dresden.de")
481
set(CPACK_PACKAGE_VERSION "${CurrentRevision}")
482
483
484
set(CPACK_GENERATOR "RPM" "DEB" "TGZ")
set(CPACK_INSTALL_PREFIX "/usr/")

485
486
configure_file(${AMDIS_SOURCE_DIR}/preinst.in 
  ${AMDIS_BINARY_DIR}/preinst 
Naumann, Andreas's avatar
Naumann, Andreas committed
487
488
  @ONLY)

489
490
configure_file(${AMDIS_SOURCE_DIR}/postrm.in 
  ${AMDIS_BINARY_DIR}/postrm 
Naumann, Andreas's avatar
Naumann, Andreas committed
491
  @ONLY)
492
493
set(CPACK_RPM_PACKAGE_REQUIRES "boost-devel == 1.42, ${RPM_DEPEND_STR}")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (== 1.42), libboost-iostreams-dev (== 1.42), libboost-system-dev (== 1.42), libboost-filesystem-dev (== 1.42)")
494
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDIS_BINARY_DIR}/preinst" "${AMDIS_BINARY_DIR}/postrm")
Naumann, Andreas's avatar
Naumann, Andreas committed
495

496
include(CPack)