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

3
cmake_minimum_required(VERSION 2.6)
4

Naumann, Andreas's avatar
Naumann, Andreas committed
5
6
#needs: --enable-debug, enable-intel --enable-openmp --enable-parmetis --enable-parallel-domain --enable-umfpack --enable-mkl --enable-boost --enable-marmot

7
8
SET(LIB_DIR ${AMDiS_SOURCE_DIR}/lib)
SET(SOURCE_DIR ${AMDiS_SOURCE_DIR}/src)
9

10
#TODO: use the cmake build type
11
12
SET(MTL_DIR ${LIB_DIR}/mtl4/ CACHE PATH "mtl4 directory")

13
14
15
16
17
18
19
20
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g -Wall -DDEBUG=0")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -DDEBUG=1 -O0")

#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
21
22
23
#option(ENABLE_INTEL "use intel compiler" false)
option(ENABLE_OPENMP "use openmp" false)
option(ENABLE_PARALLEL_DOMAIN "use parallel domain decomposition" false)
Naumann, Andreas's avatar
Naumann, Andreas committed
24
option(USE_PETSC_DEV false)
25
#parmetis is not optional
Naumann, Andreas's avatar
Naumann, Andreas committed
26
27
set(ENABLE_PARMETIS false)
option(ENABLE_ZOLTAN false)
Naumann, Andreas's avatar
Naumann, Andreas committed
28
29
option(ENABLE_UMFPACK "use umfpack solver" false)
option(ENABLE_MKL "use the mkl" false)
30
SET(MKL_DIR "" CACHE PATH "MKL directory")
31
option(ENABLE_TESTS "compile the tests" false)
Naumann, Andreas's avatar
Naumann, Andreas committed
32
33
34
35
36
37
38
39
40

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)

41
42
43
44
45
46
47
48
49
50
51
find_package(Boost 1.42 REQUIRED)
if(Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIR})
  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")
  endif(WIN32)		
  link_directories(${Boost_LIBRARY_DIRS})
endif(Boost_FOUND)
Naumann, Andreas's avatar
Naumann, Andreas committed
52

Thomas Witkowski's avatar
Thomas Witkowski committed
53
54
SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
	      ${SOURCE_DIR}/AdaptInfo.cc
55
	      ${SOURCE_DIR}/AdaptInstationary.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
	      ${SOURCE_DIR}/AdaptStationary.cc
	      ${SOURCE_DIR}/Assembler.cc
	      ${SOURCE_DIR}/BasisFunction.cc
	      ${SOURCE_DIR}/Boundary.cc
	      ${SOURCE_DIR}/BoundaryManager.cc
	      ${SOURCE_DIR}/Cholesky.cc
	      ${SOURCE_DIR}/CoarseningManager.cc
	      ${SOURCE_DIR}/CoarseningManager1d.cc
	      ${SOURCE_DIR}/CoarseningManager2d.cc
	      ${SOURCE_DIR}/CoarseningManager3d.cc
	      ${SOURCE_DIR}/ComponentTraverseInfo.cc
	      ${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
72
	      ${SOURCE_DIR}/Debug.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
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
118
119
120
121
122
123
124
125
126
127
128
	      ${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}/Estimator.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
	      ${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}/NonLinUpdater.cc
	      ${SOURCE_DIR}/Operator.cc
	      ${SOURCE_DIR}/OperatorTerm.cc
	      ${SOURCE_DIR}/Parameters.cc
	      ${SOURCE_DIR}/Parametric.cc
	      ${SOURCE_DIR}/PeriodicBC.cc
	      ${SOURCE_DIR}/ProblemImplicit.cc
	      ${SOURCE_DIR}/ProblemInstat.cc
	      ${SOURCE_DIR}/ProblemInterpolScal.cc
	      ${SOURCE_DIR}/ProblemInterpolVec.cc
	      ${SOURCE_DIR}/ProblemNonLin.cc
	      ${SOURCE_DIR}/ProblemScal.cc
	      ${SOURCE_DIR}/ProblemVec.cc
	      ${SOURCE_DIR}/ProblemVecDbg.cc
	      ${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}/RecoveryEstimator.cc
	      ${SOURCE_DIR}/RefinementManager.cc
	      ${SOURCE_DIR}/RefinementManager1d.cc
	      ${SOURCE_DIR}/RefinementManager2d.cc
	      ${SOURCE_DIR}/RefinementManager3d.cc
	      ${SOURCE_DIR}/ResidualEstimator.cc
	      ${SOURCE_DIR}/ResidualParallelEstimator.cc
	      ${SOURCE_DIR}/RobinBC.cc
	      ${SOURCE_DIR}/ScalableQuadrature.cc
	      ${SOURCE_DIR}/SecondOrderAssembler.cc
	      ${SOURCE_DIR}/SecondOrderTerm.cc
129
	      ${SOURCE_DIR}/Serializer.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
130
131
132
133
134
135
136
137
138
139
140
141
	      ${SOURCE_DIR}/StandardProblemIteration.cc
	      ${SOURCE_DIR}/SubAssembler.cc
	      ${SOURCE_DIR}/SubElInfo.cc
	      ${SOURCE_DIR}/SubQuadrature.cc
	      ${SOURCE_DIR}/SurfaceQuadrature.cc
	      ${SOURCE_DIR}/Tetrahedron.cc
	      ${SOURCE_DIR}/Traverse.cc
	      ${SOURCE_DIR}/TraverseParallel.cc
	      ${SOURCE_DIR}/Triangle.cc
	      ${SOURCE_DIR}/VertexVector.cc
	      ${SOURCE_DIR}/ZeroOrderAssembler.cc
	      ${SOURCE_DIR}/ZeroOrderTerm.cc
142
143
	      ${SOURCE_DIR}/io/ArhReader.cc
	      ${SOURCE_DIR}/io/ArhWriter.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
	      ${SOURCE_DIR}/io/DataCollector.cc
	      ${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
	      ${SOURCE_DIR}/io/PngWriter.cc
	      ${SOURCE_DIR}/io/PovrayWriter.cc
	      ${SOURCE_DIR}/io/ValueReader.cc
	      ${SOURCE_DIR}/io/ValueWriter.cc
	      ${SOURCE_DIR}/io/VtkWriter.cc
	      ${SOURCE_DIR}/parallel/InteriorBoundary.cc
	      ${SOURCE_DIR}/time/RosenbrockAdaptInstationary.cc
159
	      ${SOURCE_DIR}/time/RosenbrockMethod.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
160
	      ${SOURCE_DIR}/time/RosenbrockStationary.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
161
162
	      )

163
if(ENABLE_PARALLEL_DOMAIN)
Naumann, Andreas's avatar
Naumann, Andreas committed
164
	find_package(MPI REQUIRED)
165
166
167
168
169
170
171
	if(MPI_FOUND)
	  #INCLUDE (CMakeForceCompiler)	
	  #CMAKE_FORCE_C_COMPILER(mpicc "MPI C compiler")
	  #CMAKE_FORCE_CXX_COMPILER(mpiCC "MPI C++ compiler")
	  list(APPEND AMDiS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
	  include_directories(${MPI_INCLUDE_PATH})
	endif(MPI_FOUND)
172
173
174
175
176
 
	add_custom_target(parmetis-lib ALL
			make
			WORKING_DIRECTORY ${LIB_DIR}/ParMetis-3.1
			)
Naumann, Andreas's avatar
Naumann, Andreas committed
177
	include_directories( ${LIB_DIR}/ParMetis-3.1)
178
        INSTALL(FILES ${LIB_DIR}/ParMetis-3.1/parmetis.h
179
180
		${LIB_DIR}/ParMetis-3.1/libparmetis.a
		${LIB_DIR}/ParMetis-3.1/libmetis.a
181
		DESTINATION lib/amdis/parmetis
182
	       )
183
	set(ENABLE_PARMETIS ON)
184
185
186
187
	if(ENABLE_ZOLTAN)
	  find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h")
	  if( ZOLTAN_HEADER_FILE )
		get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
188
		include_directories(${ZOLTAN_HEADER_DIR})
189
	  else()
190
		message( FATAL_ERROR "could not find zoltan.")
191
192
193
194
	  endif( ZOLTAN_HEADER_FILE )
	  set(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_ZOLTAN")
	endif(ENABLE_ZOLTAN)

195
	set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};/usr/share/cmake-2.8/Modules/;${CMAKE_SOURCE_DIR}/")
196
	set(PETSC_EXECUTABLE_RUNS ON)
197
	find_package(PETSc REQUIRED)
Naumann, Andreas's avatar
Naumann, Andreas committed
198
199
	include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
	SET(PARALLEL_DOMAIN_AMDIS_SRC
200
		${SOURCE_DIR}/parallel/CheckerPartitioner.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
201
		${SOURCE_DIR}/parallel/ElementObjectData.cc
202
		${SOURCE_DIR}/parallel/MeshDistributor.cc 
203
		${SOURCE_DIR}/parallel/MeshManipulation.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
204
		${SOURCE_DIR}/parallel/MeshPartitioner.cc
205
		${SOURCE_DIR}/parallel/MpiHelper.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
206
		${SOURCE_DIR}/parallel/ParallelDebug.cc
207
		${SOURCE_DIR}/parallel/ParallelProblemStatBase.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
208
                ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc
209
		${SOURCE_DIR}/parallel/PetscProblemStat.cc
210
		${SOURCE_DIR}/parallel/PetscSolver.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
211
		${SOURCE_DIR}/parallel/StdMpi.cc
212
		${SOURCE_DIR}/parallel/ZoltanPartitioner.cc)
Naumann, Andreas's avatar
Naumann, Andreas committed
213
	SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_PARALLEL_DOMAIN_AMDIS=1")
214
215
	INSTALL(FILES ResolveCompilerPaths.cmake FindPackageMultipass.cmake FindPETSc.cmake
		DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
216
217
218
	if( USE_PETSC_DEV )
	  SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_PETSC_DEV")
	endif( USE_PETSC_DEV)
Naumann, Andreas's avatar
Naumann, Andreas committed
219
220
221
endif(ENABLE_PARALLEL_DOMAIN)

if(ENABLE_OPENMP)
222
223
224
225
	find_package(OpenMP)
	if(OPENMP_FOUND)
		SET(COMPILEFLAGS "${COMPILEFLAGS} ${OpenMP_CXX_FLAGS}")
	else()
226
		message(WARNING "your compiler seems not supporting openmp")
227
	endif()
Naumann, Andreas's avatar
Naumann, Andreas committed
228
229
230
231
232
endif(ENABLE_OPENMP)

if(ENABLE_UMFPACK)
	include_directories(${LIB_DIR}/UFconfig ${LIB_DIR}/AMD/Include ${LIB_DIR}/UMFPACK/Include)
	SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_UMFPACK=1 -DMTL_HAS_UMFPACK")
233
        FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h")
234
235
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/umfpack/)
236
	list(APPEND deb_add_dirs "include/amdis/umfpack")
237

238
	FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h")
239
240
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/amd/)
241
	list(APPEND deb_add_dirs "include/amdis/amd")
242

243
	FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/*.h")
244
245
	INSTALL(FILES ${HEADERS} 
		DESTINATION include/amdis/ufconfig/)
246
	list(APPEND deb_add_dirs "include/amdis/ufconfig")
247

248
	FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h")
249
250
	INSTALL(FILES ${HEADERS} 
		DESTINATION include/amdis/ufconfig/xerbla)
251
	list(APPEND deb_add_dirs "include/amdis/ufconfig/xerbla")
252

253
254
255
256
257
258
259
260
261
262
263
264
#add some rules to build the umfpack and amd libs
#	message("adding command for libumfpack:${CMAKE_CURRENT_SOURCE_DIR}/${LIB_DIR}/UMFPACK/Lib/libumfpack.a ")
	add_custom_target(umfpack-lib ALL
			make
			WORKING_DIRECTORY ${LIB_DIR}/UMFPACK
			)

	add_custom_target(amd-lib ALL
			 make
			WORKING_DIRECTORY ${LIB_DIR}/AMD
			)

265
266
	INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a 
		DESTINATION lib/amdis/umfpack/)
267
	list(APPEND deb_add_dirs "lib/amdis/umfpack")
268
269
	INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a 
		DESTINATION lib/amdis/amd/)
270
271
	list(APPEND deb_add_dirs "lib/amdis/amd")

272
	SET(RPM_DEPEND_STR "blas")
273
	LIST(APPEND AMDiS_LIBS amdis blas amd umfpack)
Naumann, Andreas's avatar
Naumann, Andreas committed
274
275
276
277
278
279
280
endif(ENABLE_UMFPACK)

if(ENABLE_MKL)
	include_directories(${MKL_DIR})
	SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_MKL=1")
endif(ENABLE_MKL)

281
SET(COMPOSITE_SOURCE_DIR ${SOURCE_DIR}/compositeFEM)
Thomas Witkowski's avatar
Thomas Witkowski committed
282
283
284
285
286
287
288
289
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
290
291
		      ${COMPOSITE_SOURCE_DIR}/SubElementAssembler.cc )

292
293
294
295
set(REINIT_SOURCE_DIR ${SOURCE_DIR}/reinit)
file(GLOB REINIT_SRC ${REINIT_SOURCE_DIR}/*.cc)
include_directories(${REINIT_SOURCE_DIR})

Naumann, Andreas's avatar
Naumann, Andreas committed
296
#mtl4 includes
297
include_directories(${MTL_DIR})
Naumann, Andreas's avatar
Naumann, Andreas committed
298
299
include_directories(${SOURCE_DIR})

300
add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC})
Naumann, Andreas's avatar
Naumann, Andreas committed
301
add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC})
302
add_library(reinit STATIC ${REINIT_SRC})
303
target_link_libraries(compositeFEM amdis)
304
LIST(APPEND AMDiS_LIBS amdis boost_system boost_iostreams)
305

306
307
308
if(WIN32)
	SET(COMPILEFLAGS "${COMPILEFLAGS} -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS")
endif(WIN32)
309
message("compileflags: ${COMPILEFLAGS}")
310
311
#SET_TARGET_PROPERTIES(amdis PROPERTIES COMPILE_FLAGS "${COMPILEFLAGS}")
add_definitions(${COMPILEFLAGS})
Naumann, Andreas's avatar
Naumann, Andreas committed
312
313
314
315
if(ENABLE_MARMOT)
	Message("please set marmotcc manually")
endif(ENABLE_MARMOT)

316
#dont change this destination. the GUI depends on it to guess the buildsystem
317
list(APPEND deb_add_dirs "lib/amdis")
Naumann, Andreas's avatar
Naumann, Andreas committed
318
install(TARGETS amdis compositeFEM 
319
	LIBRARY DESTINATION lib/amdis/ )
320

321
FILE(GLOB HEADERS "${SOURCE_DIR}/*.h")
322
323
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
324
325
list(APPEND deb_add_dirs "include/amdis")

326
FILE(GLOB HEADERS "${SOURCE_DIR}/*.hh")
327
328
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
329

330
FILE(GLOB HEADERS "${SOURCE_DIR}/parallel/*.h")
331
332
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/parallel/)
Naumann, Andreas's avatar
Naumann, Andreas committed
333
334
list(APPEND deb_add_dirs "include/amdis/parallel")

335
FILE(GLOB HEADERS "${SOURCE_DIR}/time/*.h")
336
337
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/time/)
Naumann, Andreas's avatar
Naumann, Andreas committed
338
339
list(APPEND deb_add_dirs "include/amdis/time")

340
FILE(GLOB HEADERS "${SOURCE_DIR}/itl/*.hpp")
341
342
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/itl)
Naumann, Andreas's avatar
Naumann, Andreas committed
343
344
list(APPEND deb_add_dirs "include/amdis/itl")

345
FILE(GLOB HEADERS "${SOURCE_DIR}/io/*.h")
Naumann, Andreas's avatar
Naumann, Andreas committed
346
347
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/io)
Naumann, Andreas's avatar
Naumann, Andreas committed
348
349
list(APPEND deb_add_dirs "include/amdis/io")

350
FILE(GLOB HEADERS "${SOURCE_DIR}/io/*.hh")
Naumann, Andreas's avatar
Naumann, Andreas committed
351
352
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/io)
353

354
configure_file(${AMDiS_SOURCE_DIR}/AMDiSConfig.cmake.in
355
		${AMDiS_BINARY_DIR}/AMDISConfig.cmake
356
357
		@ONLY
	      )
358

359
INSTALL(FILES ${AMDiS_BINARY_DIR}/AMDISConfig.cmake 
360
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
361
362
list(APPEND deb_add_dirs "share/amdis/")

363
INSTALL(FILES ${AMDiS_SOURCE_DIR}/AMDiSUse.cmake 
364
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
365

366
#install mtl
367
INSTALL(DIRECTORY ${AMDiS_SOURCE_DIR}/lib/mtl4/
368
369
370
371
372
373
	DESTINATION include/amdis/mtl4/
	FILES_MATCHING PATTERN "*.hpp"
	PATTERN ".svn" EXCLUDE
	PATTERN ".svn/*" EXCLUDE
	PATTERN "mtl4/libs" EXCLUDE
	PATTERN "mtl4/extern" EXCLUDE
374
       )
Naumann, Andreas's avatar
Naumann, Andreas committed
375
376
377
378
379
FILE(GLOB_RECURSE mtl4_files 
		RELATIVE ${AMDiS_SOURCE_DIR}/lib/mtl4/boost/ 
		${AMDiS_SOURCE_DIR}/lib/mtl4/boost/*.hpp)
foreach(mtl4_file in ${mtl4_files})
 get_filename_component(mtl4File_path ${mtl4_file} PATH)
380
 list(APPEND deb_add_dirs "include/amdis/mtl4/boost/${mtl4File_path}")
Naumann, Andreas's avatar
Naumann, Andreas committed
381
382
endforeach(mtl4_file)
list(REMOVE_DUPLICATES deb_add_dirs)
383
384

#PACKAGES
385
386
387
#let cmake look for the svn-version
find_package(Subversion)
if(Subversion_FOUND)
388
	Subversion_WC_INFO(${AMDiS_SOURCE_DIR} mtlSubinfo)
389
390
391
392
393
	set(CurrentRevision ${mtlSubinfo_WC_REVISION})
#       message("current revision: ${mtlSubinfo_WC_REVISION}")
else(Subversion_FOUND)
	set(CurrentRevision "0")
endif(Subversion_FOUND)
Naumann, Andreas's avatar
Naumann, Andreas committed
394
set(CPACK_PACKAGE_NAME "AMDiS")
395
set(CPACK_PACKAGE_CONTACT "Andreas.Naumann@tu-dresden.de")
396
set(CPACK_PACKAGE_VERSION "0.9.${CurrentRevision}")
397
398
399
set(CPACK_GENERATOR "RPM" "DEB" "TGZ")
set(CPACK_INSTALL_PREFIX "/usr/")

Naumann, Andreas's avatar
Naumann, Andreas committed
400
401
402
403
404
405
406
configure_file(${AMDiS_SOURCE_DIR}/preinst.in 
  ${AMDiS_BINARY_DIR}/preinst 
  @ONLY)

configure_file(${AMDiS_SOURCE_DIR}/postrm.in 
  ${AMDiS_BINARY_DIR}/postrm 
  @ONLY)
407
set(CPACK_RPM_PACKAGE_REQUIRES "boost-devel >= 1.42, ${RPM_DEPEND_STR}")
Naumann, Andreas's avatar
Naumann, Andreas committed
408
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.42), libboost-iostreams-dev (>= 1.42), libboost-system-dev (>= 1.42)")
Naumann, Andreas's avatar
Naumann, Andreas committed
409
410
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDiS_BINARY_DIR}/preinst" "${AMDiS_BINARY_DIR}/postrm")

411
include(CPack)
Naumann, Andreas's avatar
Naumann, Andreas committed
412
if(ENABLE_TESTS)
413
414
ENABLE_TESTING()
add_subdirectory(test)
Naumann, Andreas's avatar
Naumann, Andreas committed
415
endif(ENABLE_TESTS)