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

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)

40
41
42
43
44
45
46
47
48
49
50
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
51

Thomas Witkowski's avatar
Thomas Witkowski committed
52
53
SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
	      ${SOURCE_DIR}/AdaptInfo.cc
54
	      ${SOURCE_DIR}/AdaptInstationary.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
	      ${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
71
	      ${SOURCE_DIR}/Debug.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
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
	      ${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}/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
104
105
106
	      ${SOURCE_DIR}/ProblemInterpol.cc
	      ${SOURCE_DIR}/ProblemStat.cc
	      ${SOURCE_DIR}/ProblemStatDbg.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
	      ${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}/RobinBC.cc
	      ${SOURCE_DIR}/ScalableQuadrature.cc
	      ${SOURCE_DIR}/SecondOrderAssembler.cc
	      ${SOURCE_DIR}/SecondOrderTerm.cc
123
	      ${SOURCE_DIR}/Serializer.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
124
125
126
127
128
129
130
131
132
133
134
	      ${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}/Triangle.cc
	      ${SOURCE_DIR}/VertexVector.cc
	      ${SOURCE_DIR}/ZeroOrderAssembler.cc
	      ${SOURCE_DIR}/ZeroOrderTerm.cc
135
136
	      ${SOURCE_DIR}/io/ArhReader.cc
	      ${SOURCE_DIR}/io/ArhWriter.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
	      ${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
152
	      ${SOURCE_DIR}/time/RosenbrockMethod.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
153
	      ${SOURCE_DIR}/time/RosenbrockStationary.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
154
155
	      )

156
if(ENABLE_PARALLEL_DOMAIN)
Naumann, Andreas's avatar
Naumann, Andreas committed
157
	find_package(MPI REQUIRED)
158
159
160
161
162
163
164
	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)
165
166
167
168
169
 
	add_custom_target(parmetis-lib ALL
			make
			WORKING_DIRECTORY ${LIB_DIR}/ParMetis-3.1
			)
Naumann, Andreas's avatar
Naumann, Andreas committed
170
	include_directories( ${LIB_DIR}/ParMetis-3.1)
171
        INSTALL(FILES ${LIB_DIR}/ParMetis-3.1/parmetis.h
172
173
		${LIB_DIR}/ParMetis-3.1/libparmetis.a
		${LIB_DIR}/ParMetis-3.1/libmetis.a
174
		DESTINATION lib/amdis/parmetis
175
	       )
176
	set(ENABLE_PARMETIS ON)
177
178
179
180
	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)
181
		include_directories(${ZOLTAN_HEADER_DIR})
182
	  else()
183
		message( FATAL_ERROR "could not find zoltan.")
184
185
186
187
	  endif( ZOLTAN_HEADER_FILE )
	  set(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_ZOLTAN")
	endif(ENABLE_ZOLTAN)

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

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")
219
        FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h")
220
221
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/umfpack/)
222
	list(APPEND deb_add_dirs "include/amdis/umfpack")
223

224
	FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h")
225
226
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/amd/)
227
	list(APPEND deb_add_dirs "include/amdis/amd")
228

229
	FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/*.h")
230
231
	INSTALL(FILES ${HEADERS} 
		DESTINATION include/amdis/ufconfig/)
232
	list(APPEND deb_add_dirs "include/amdis/ufconfig")
233

234
	FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h")
235
236
	INSTALL(FILES ${HEADERS} 
		DESTINATION include/amdis/ufconfig/xerbla)
237
	list(APPEND deb_add_dirs "include/amdis/ufconfig/xerbla")
238

239
240
241
242
243
244
245
246
247
248
249
250
#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
			)

251
252
	INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a 
		DESTINATION lib/amdis/umfpack/)
253
	list(APPEND deb_add_dirs "lib/amdis/umfpack")
254
255
	INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a 
		DESTINATION lib/amdis/amd/)
256
257
	list(APPEND deb_add_dirs "lib/amdis/amd")

258
	SET(RPM_DEPEND_STR "blas")
259
	LIST(APPEND AMDiS_LIBS amdis blas amd umfpack)
Naumann, Andreas's avatar
Naumann, Andreas committed
260
261
262
263
264
265
266
endif(ENABLE_UMFPACK)

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

267
SET(COMPOSITE_SOURCE_DIR ${SOURCE_DIR}/compositeFEM)
Thomas Witkowski's avatar
Thomas Witkowski committed
268
269
270
271
272
273
274
275
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
276
277
		      ${COMPOSITE_SOURCE_DIR}/SubElementAssembler.cc )

278
279
280
281
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
282
#mtl4 includes
283
include_directories(${MTL_DIR})
Naumann, Andreas's avatar
Naumann, Andreas committed
284
285
include_directories(${SOURCE_DIR})

286
add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC})
Naumann, Andreas's avatar
Naumann, Andreas committed
287
add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC})
288
add_library(reinit STATIC ${REINIT_SRC})
289
target_link_libraries(compositeFEM amdis)
290
LIST(APPEND AMDiS_LIBS amdis boost_system boost_iostreams)
291

292
293
294
if(WIN32)
	SET(COMPILEFLAGS "${COMPILEFLAGS} -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS")
endif(WIN32)
295
message("compileflags: ${COMPILEFLAGS}")
296
297
#SET_TARGET_PROPERTIES(amdis PROPERTIES COMPILE_FLAGS "${COMPILEFLAGS}")
add_definitions(${COMPILEFLAGS})
Naumann, Andreas's avatar
Naumann, Andreas committed
298
299
300
301
if(ENABLE_MARMOT)
	Message("please set marmotcc manually")
endif(ENABLE_MARMOT)

302
#dont change this destination. the GUI depends on it to guess the buildsystem
303
list(APPEND deb_add_dirs "lib/amdis")
Naumann, Andreas's avatar
Naumann, Andreas committed
304
install(TARGETS amdis compositeFEM 
305
	LIBRARY DESTINATION lib/amdis/ )
306

307
FILE(GLOB HEADERS "${SOURCE_DIR}/*.h")
308
309
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
310
311
list(APPEND deb_add_dirs "include/amdis")

312
FILE(GLOB HEADERS "${SOURCE_DIR}/*.hh")
313
314
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
315

316
FILE(GLOB HEADERS "${SOURCE_DIR}/parallel/*.h")
317
318
INSTALL(FILES ${HEADERS} 
	DESTINATION include/amdis/parallel/)
Naumann, Andreas's avatar
Naumann, Andreas committed
319
320
list(APPEND deb_add_dirs "include/amdis/parallel")

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

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

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

336
FILE(GLOB HEADERS "${SOURCE_DIR}/io/*.hh")
Naumann, Andreas's avatar
Naumann, Andreas committed
337
338
INSTALL(FILES ${HEADERS}
	DESTINATION include/amdis/io)
339

340
configure_file(${AMDiS_SOURCE_DIR}/AMDiSConfig.cmake.in
341
		${AMDiS_BINARY_DIR}/AMDISConfig.cmake
342
343
		@ONLY
	      )
344

345
INSTALL(FILES ${AMDiS_BINARY_DIR}/AMDISConfig.cmake 
346
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
347
348
list(APPEND deb_add_dirs "share/amdis/")

349
INSTALL(FILES ${AMDiS_SOURCE_DIR}/AMDiSUse.cmake 
350
	DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
351

352
#install mtl
353
INSTALL(DIRECTORY ${AMDiS_SOURCE_DIR}/lib/mtl4/
354
355
356
357
358
359
	DESTINATION include/amdis/mtl4/
	FILES_MATCHING PATTERN "*.hpp"
	PATTERN ".svn" EXCLUDE
	PATTERN ".svn/*" EXCLUDE
	PATTERN "mtl4/libs" EXCLUDE
	PATTERN "mtl4/extern" EXCLUDE
360
       )
Naumann, Andreas's avatar
Naumann, Andreas committed
361
362
363
364
365
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)
366
 list(APPEND deb_add_dirs "include/amdis/mtl4/boost/${mtl4File_path}")
Naumann, Andreas's avatar
Naumann, Andreas committed
367
368
endforeach(mtl4_file)
list(REMOVE_DUPLICATES deb_add_dirs)
369
370

#PACKAGES
371
372
373
#let cmake look for the svn-version
find_package(Subversion)
if(Subversion_FOUND)
374
	Subversion_WC_INFO(${AMDiS_SOURCE_DIR} mtlSubinfo)
375
376
377
378
379
	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
380
set(CPACK_PACKAGE_NAME "AMDiS")
381
set(CPACK_PACKAGE_CONTACT "Andreas.Naumann@tu-dresden.de")
382
set(CPACK_PACKAGE_VERSION "0.9.${CurrentRevision}")
383
384
385
set(CPACK_GENERATOR "RPM" "DEB" "TGZ")
set(CPACK_INSTALL_PREFIX "/usr/")

Naumann, Andreas's avatar
Naumann, Andreas committed
386
387
388
389
390
391
392
configure_file(${AMDiS_SOURCE_DIR}/preinst.in 
  ${AMDiS_BINARY_DIR}/preinst 
  @ONLY)

configure_file(${AMDiS_SOURCE_DIR}/postrm.in 
  ${AMDiS_BINARY_DIR}/postrm 
  @ONLY)
393
set(CPACK_RPM_PACKAGE_REQUIRES "boost-devel >= 1.42, ${RPM_DEPEND_STR}")
Naumann, Andreas's avatar
Naumann, Andreas committed
394
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
395
396
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDiS_BINARY_DIR}/preinst" "${AMDiS_BINARY_DIR}/postrm")

397
include(CPack)
Naumann, Andreas's avatar
Naumann, Andreas committed
398
if(ENABLE_TESTS)
399
400
ENABLE_TESTING()
add_subdirectory(test)
Naumann, Andreas's avatar
Naumann, Andreas committed
401
endif(ENABLE_TESTS)