From 5d4f9830f5df30ce39ecf7bbaa87dce0daef9191 Mon Sep 17 00:00:00 2001 From: Andreas Naumann <andreas.naumann@tu-dresden.de> Date: Mon, 22 Nov 2010 11:48:49 +0000 Subject: [PATCH] use the cmake-debug build and create umfpack and parmetis libraries, if desired --- AMDiS/CMakeLists.txt | 85 +++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/AMDiS/CMakeLists.txt b/AMDiS/CMakeLists.txt index 02cb6155..dc20b34e 100644 --- a/AMDiS/CMakeLists.txt +++ b/AMDiS/CMakeLists.txt @@ -11,21 +11,22 @@ SET(SOURCE_DIR ${AMDiS_SOURCE_DIR}) #TODO: use the cmake build type SET(MTL_DIR ${LIB_DIR}/mtl4/ CACHE PATH "mtl4 directory") -option(ENABLE_DEBUG "debug" false) +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() + #option(ENABLE_INTEL "use intel compiler" false) option(ENABLE_OPENMP "use openmp" false) -option(ENABLE_PARMETIS "use partion of unity and enable parmetis" false) option(ENABLE_PARALLEL_DOMAIN "use parallel domain decomposition" false) SET(PETSC_DIR "" CACHE PATH "Petsc directory for parallel domain decomposition" ) SET(PETSC_ARCH "" CACHE STRING "Petsc architecture") option(ENABLE_UMFPACK "use umfpack solver" false) option(ENABLE_MKL "use the mkl" false) SET(MKL_DIR "" CACHE PATH "MKL directory") -option(ENABLE_DUNE "use dune" false) -SET(DUNE_DIR "" CACHE PATH "Dune directory") -#option(ENABLE_BOOST "use the boost library" false) -option(ENABLE_MARMOT "use marmot" false) -option(ENABLE_GUI "compile the gui" false) #option(ENABLE_TESTS "compile the tests" false) SET(ENABLE_TESTS false) @@ -37,20 +38,17 @@ if(ENABLE_INTEL) #SET(CMAKE_C_COMPILER "icc") endif(ENABLE_INTEL) -#if(ENABLE_BOOST) - SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_BOOST=1") - 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) -#endif(ENABLE_BOOST) +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) SET(LIB_DIR ./lib) SET(SOURCE_DIR ${AMDiS_SOURCE_DIR}) @@ -158,21 +156,23 @@ SET(AMDIS_SRC ${SOURCE_DIR}/DOFIndexed.cc ${SOURCE_DIR}/time/RosenbrockMethod.cc ) -if(ENABLE_PARMETIS) +if(ENABLE_PARALLEL_DOMAIN) find_package(MPI REQUIRED) INCLUDE (CMakeForceCompiler) CMAKE_FORCE_C_COMPILER(mpicc "MPI C compiler") CMAKE_FORCE_CXX_COMPILER(mpiCC "MPI C++ compiler") - + + add_custom_target(parmetis-lib ALL + make + WORKING_DIRECTORY ${LIB_DIR}/ParMetis-3.1 + ) include_directories( ${LIB_DIR}/ParMetis-3.1) INSTALL(FILES ${LIB_DIR}/ParMetis-3.1/parmetis.h ${LIB_DIR}/ParMetis-3.1/libparmetis.a ${LIB_DIR}/ParMetis-3.1/libmetis.a DESTINATION lib/parmetis ) -endif(ENABLE_PARMETIS) -if(ENABLE_PARALLEL_DOMAIN) include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include) SET(PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc @@ -181,20 +181,18 @@ if(ENABLE_PARALLEL_DOMAIN) ${SOURCE_DIR}/parallel/ParallelDebug.cc ${SOURCE_DIR}/parallel/GlobalMatrixSolver.cc ${SOURCE_DIR}/parallel/MpiHelper.cc - ${SOURCE_DIR}/parallel/ElementObjectData.cc) + ${SOURCE_DIR}/parallel/ElementObjectData.cc + ${SOURCE_DIR}/parallel/PetscSolver.cc) SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_PARALLEL_DOMAIN_AMDIS=1") endif(ENABLE_PARALLEL_DOMAIN) -if(ENABLE_DEBUG) - SET(COMPILEFLAGS "${COMPILEFLAGS} -g -O0 -DDEBUG=1") -endif(ENABLE_DEBUG) - if(ENABLE_OPENMP) - if(ENABLE_INTEL) - SET(COMPILEFLAGS "${COMPILEFLAGS} -openmp") - else(ENABLE_INTEL) - SET(COMPILEFLAGS "${COMPILEFLAGS} -fopenmp") - endif(ENABLE_INTEL) + find_package(OpenMP) + if(OPENMP_FOUND) + SET(COMPILEFLAGS "${COMPILEFLAGS} ${OpenMP_CXX_FLAGS}") + else() + message(WARNING "your compiler seems support openmp") + endif() endif(ENABLE_OPENMP) if(ENABLE_UMFPACK) @@ -216,6 +214,18 @@ if(ENABLE_UMFPACK) INSTALL(FILES ${HEADERS} DESTINATION include/amdis/ufconfig/xerbla) +#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 + ) + INSTALL(FILES ${LIB_DIR}/UMFPACK/Lib/libumfpack.a DESTINATION lib/amdis/umfpack/) INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a @@ -228,11 +238,6 @@ if(ENABLE_MKL) SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_MKL=1") endif(ENABLE_MKL) -if(ENABLE_DUNE) - include_directories(${DUNE_DIR}) - SET(COMPILEFLAGS "${COMPILEFLAGS} -DHAVE_DUNE=1") -endif(ENABLE_DUNE) - SET(COMPOSITE_SOURCE_DIR compositeFEM/src) SET(COMPOSITE_FEM_SRC ${COMPOSITE_SOURCE_DIR}/CFE_Integration.cc ${COMPOSITE_SOURCE_DIR}/CFE_NormAndErrorFcts.cc ${COMPOSITE_SOURCE_DIR}/CompositeFEMMethods.cc ${COMPOSITE_SOURCE_DIR}/LevelSetAdaptMesh.cc -- GitLab