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 23
#option(ENABLE_INTEL "use intel compiler" false)
option(ENABLE_OPENMP "use openmp" false)
option(ENABLE_PARALLEL_DOMAIN "use parallel domain decomposition" false)
24 25 26
set(ENABLE_PARMETIS off)
#SET(PETSC_DIR "" CACHE PATH "Petsc directory for parallel domain decomposition" )
#SET(PETSC_ARCH "" CACHE STRING "Petsc architecture")
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
	      ${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
128
	      ${SOURCE_DIR}/Serializer.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
129 130 131 132 133 134 135 136 137 138 139 140
	      ${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
141 142
	      ${SOURCE_DIR}/io/ArhReader.cc
	      ${SOURCE_DIR}/io/ArhWriter.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
	      ${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
158
	      ${SOURCE_DIR}/time/RosenbrockMethod.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
159
	      ${SOURCE_DIR}/time/RosenbrockStationary.cc
Naumann, Andreas's avatar
Naumann, Andreas committed
160 161
	      )

162
if(ENABLE_PARALLEL_DOMAIN)
Naumann, Andreas's avatar
Naumann, Andreas committed
163
	find_package(MPI REQUIRED)
164 165 166 167 168 169 170
	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)
171 172 173 174 175
 
	add_custom_target(parmetis-lib ALL
			make
			WORKING_DIRECTORY ${LIB_DIR}/ParMetis-3.1
			)
Naumann, Andreas's avatar
Naumann, Andreas committed
176
	include_directories( ${LIB_DIR}/ParMetis-3.1)
177
        INSTALL(FILES ${LIB_DIR}/ParMetis-3.1/parmetis.h
178 179
		${LIB_DIR}/ParMetis-3.1/libparmetis.a
		${LIB_DIR}/ParMetis-3.1/libmetis.a
180
		DESTINATION lib/amdis/parmetis
181
	       )
182
	set(ENABLE_PARMETIS ON)
183 184 185 186 187 188 189
	find_file(ZOLTAN_HEADER_DIR "zoltan_cpp.h")
	if( ZOLTAN_HEADER_DIR )
		get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_DIR}" PATH CACHE)
		include_directories(${ZOLTAN_HEADER_DIR})
	else()
		message( FATAL_ERROR "could not find zoltan.")
	endif( ZOLTAN_HEADER_DIR )
190
	set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};/usr/share/cmake-2.8/Modules/;${CMAKE_SOURCE_DIR}/")
191
	set(PETSC_EXECUTABLE_RUNS ON)
192
	find_package(PETSc REQUIRED)
Naumann, Andreas's avatar
Naumann, Andreas committed
193 194
	include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
	SET(PARALLEL_DOMAIN_AMDIS_SRC
Thomas Witkowski's avatar
Thomas Witkowski committed
195
		${SOURCE_DIR}/parallel/ElementObjectData.cc
196
		${SOURCE_DIR}/parallel/MeshDistributor.cc 
197
		${SOURCE_DIR}/parallel/MeshManipulation.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
198
		${SOURCE_DIR}/parallel/MeshPartitioner.cc
199
		${SOURCE_DIR}/parallel/MpiHelper.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
200
		${SOURCE_DIR}/parallel/ParallelDebug.cc
201
		${SOURCE_DIR}/parallel/ParallelProblemStatBase.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
202 203
                ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc
		$(SOURCE_DIR)/parallel/PetscProblemStat.cc
204
		${SOURCE_DIR}/parallel/PetscSolver.cc
Thomas Witkowski's avatar
Thomas Witkowski committed
205
		${SOURCE_DIR}/parallel/StdMpi.cc
206
		${SOURCE_DIR}/parallel/ZoltanPartitioner.cc)
Naumann, Andreas's avatar
Naumann, Andreas committed
207
	SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_PARALLEL_DOMAIN_AMDIS=1")
208 209
	INSTALL(FILES ResolveCompilerPaths.cmake FindPackageMultipass.cmake FindPETSc.cmake
		DESTINATION share/amdis/)
Naumann, Andreas's avatar
Naumann, Andreas committed
210 211 212
endif(ENABLE_PARALLEL_DOMAIN)

if(ENABLE_OPENMP)
213 214 215 216
	find_package(OpenMP)
	if(OPENMP_FOUND)
		SET(COMPILEFLAGS "${COMPILEFLAGS} ${OpenMP_CXX_FLAGS}")
	else()
217
		message(WARNING "your compiler seems not supporting openmp")
218
	endif()
Naumann, Andreas's avatar
Naumann, Andreas committed
219 220 221 222 223
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")
224
        FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h")
225 226
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/umfpack/)
227
	list(APPEND deb_add_dirs "include/amdis/umfpack")
228

229
	FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h")
230 231
	INSTALL(FILES ${UMFPACK_HEADERS} 
		DESTINATION include/amdis/amd/)
232
	list(APPEND deb_add_dirs "include/amdis/amd")
233

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

239
	FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h")
240 241
	INSTALL(FILES ${HEADERS} 
		DESTINATION include/amdis/ufconfig/xerbla)
242
	list(APPEND deb_add_dirs "include/amdis/ufconfig/xerbla")
243

244 245 246 247 248 249 250 251 252 253 254 255
#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
			)

256 257
	INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a 
		DESTINATION lib/amdis/umfpack/)
258
	list(APPEND deb_add_dirs "lib/amdis/umfpack")
259 260
	INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a 
		DESTINATION lib/amdis/amd/)
261 262
	list(APPEND deb_add_dirs "lib/amdis/amd")

263
	SET(RPM_DEPEND_STR "blas")
264
	LIST(APPEND AMDiS_LIBS amdis blas amd umfpack)
Naumann, Andreas's avatar
Naumann, Andreas committed
265 266 267 268 269 270 271
endif(ENABLE_UMFPACK)

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

Thomas Witkowski's avatar
Thomas Witkowski committed
272 273 274 275 276 277 278 279 280
SET(COMPOSITE_SOURCE_DIR ${SOURCE_DIR)/compositeFEM)
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
281 282 283
		      ${COMPOSITE_SOURCE_DIR}/SubElementAssembler.cc )

#mtl4 includes
284
include_directories(${MTL_DIR})
Naumann, Andreas's avatar
Naumann, Andreas committed
285 286
include_directories(${SOURCE_DIR})

287
add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC})
Naumann, Andreas's avatar
Naumann, Andreas committed
288
add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC})
289
target_link_libraries(compositeFEM amdis)
290
LIST(APPEND AMDiS_LIBS amdis boost_system boost_iostreams)
291 292 293
if(WIN32)
	SET(COMPILEFLAGS "${COMPILEFLAGS} -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS")
endif(WIN32)
294
message("compileflags: ${COMPILEFLAGS}")
295 296
#SET_TARGET_PROPERTIES(amdis PROPERTIES COMPILE_FLAGS "${COMPILEFLAGS}")
add_definitions(${COMPILEFLAGS})
Naumann, Andreas's avatar
Naumann, Andreas committed
297 298 299 300
if(ENABLE_MARMOT)
	Message("please set marmotcc manually")
endif(ENABLE_MARMOT)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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