Commit 99f1286b authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Work in cmake configuration, maybe it will work better.

parent 6ffc619b
...@@ -58,18 +58,17 @@ if(Boost_FOUND) ...@@ -58,18 +58,17 @@ if(Boost_FOUND)
list(APPEND AMDIS_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) list(APPEND AMDIS_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
endif(Boost_FOUND) endif(Boost_FOUND)
set(AMDiS_NEED_PARMETIS @ENABLE_PARMETIS@) set(AMDIS_NEED_ZOLTAN @ENABLE_ZOLTAN@)
set(AMDiS_NEED_ZOLTAN @ENABLE_ZOLTAN@) set(AMDIS_HAS_PARALLEL_DOMAIN @ENABLE_PARALLEL_DOMAIN@)
set(AMDiS_HAS_PARALLEL_DOMAIN @ENABLE_PARALLEL_DOMAIN@) set(AMDIS_NEED_UMFPACK @ENABLE_UMFPACK@)
set(AMDiS_NEED_UMFPACK @ENABLE_UMFPACK@) set(AMDIS_NEED_MKL @ENABLE_MKL@)
set(AMDiS_NEED_MKL @ENABLE_MKL@) set(AMDIS_USE_FILE ${AMDIS_DIR}/AMDISUse.cmake)
set(AMDIS_USE_FILE ${AMDIS_DIR}/AMDiSUse.cmake) set(AMDIS_COMPILEFLAGS "@COMPILEFLAGS@")
set(AMDiS_COMPILEFLAGS "@COMPILEFLAGS@")
set(AMDIS_VERSION @CurrentRevision@) set(AMDIS_VERSION @CurrentRevision@)
set(AMDIS_MAJOR_VERSION @AMDIS_MAJOR@) set(AMDIS_MAJOR_VERSION @AMDIS_MAJOR@)
set(AMDIS_MINOR_VERSION @AMDIS_MINOR@) set(AMDIS_MINOR_VERSION @AMDIS_MINOR@)
if(AMDiS_NEED_UMFPACK) if(AMDIS_NEED_UMFPACK)
#look for umfpack, we need the headers only #look for umfpack, we need the headers only
find_file(UMFPACK_H umfpack.h find_file(UMFPACK_H umfpack.h
HINTS /usr/include /usr/include/suitesparse /usr/include/ufsparse HINTS /usr/include /usr/include/suitesparse /usr/include/ufsparse
...@@ -127,7 +126,7 @@ if(AMDiS_NEED_UMFPACK) ...@@ -127,7 +126,7 @@ if(AMDiS_NEED_UMFPACK)
endif() endif()
#message("amdis-libs: ${AMDIS_LIBRARIES}") #message("amdis-libs: ${AMDIS_LIBRARIES}")
list(APPEND AMDIS_LIBRARY_DIRS ${BLAS_LIBRARY_DIR}) list(APPEND AMDIS_LIBRARY_DIRS ${BLAS_LIBRARY_DIR})
endif(AMDiS_NEED_UMFPACK) endif(AMDIS_NEED_UMFPACK)
#add directories for reinit #add directories for reinit
...@@ -136,21 +135,13 @@ list(APPEND AMDIS_INCLUDE_DIRS ${AMDIS_INCLUDE_DIR}/compositeFEM) ...@@ -136,21 +135,13 @@ list(APPEND AMDIS_INCLUDE_DIRS ${AMDIS_INCLUDE_DIR}/compositeFEM)
list(APPEND AMDIS_INCLUDE_DIRS ${AMDIS_INCLUDE_DIR}/muparser) list(APPEND AMDIS_INCLUDE_DIRS ${AMDIS_INCLUDE_DIR}/muparser)
if(${AMDIS_FIND_COMPONENTS} MATCHES umfpack ) if(${AMDIS_FIND_COMPONENTS} MATCHES umfpack )
if( NOT AMDiS_NEED_UMFPACK ) if( NOT AMDIS_NEED_UMFPACK )
set( AMDiS_umfpack_FOUND FALSE) set( AMDIS_umfpack_FOUND FALSE)
message(SEND_ERROR "the selected amdis was not compiled with umfpack") message(SEND_ERROR "the selected amdis was not compiled with umfpack")
endif() endif()
endif() endif()
if( AMDiS_NEED_PARMETIS ) if(AMDIS_NEED_ZOLTAN)
list(APPEND AMDIS_LIBRARY_DIRS ${AMDIS_LIBRARY_DIR}/parmetis)
list(APPEND AMDIS_LIBRARIES ${AMDIS_LIBRARY_DIR}/parmetis/libparmetis.a ${AMDIS_LIBRARY_DIR}/parmetis/libmetis.a)
endif()
if( AMDiS_NEED_ZOLTAN )
find_library(ZOLTAN_LIB zoltan DOC "full path to the zoltan library") find_library(ZOLTAN_LIB zoltan DOC "full path to the zoltan library")
list(APPEND AMDIS_LIBRARIES ${ZOLTAN_LIB}) list(APPEND AMDIS_LIBRARIES ${ZOLTAN_LIB})
endif() endif()
if(${AMDIS_FIND_COMPONENTS} MATCHES parmetis AND NOT AMDiS_NEED_PARMETIS)
message(SEND_ERROR "amdis was not compiled with parmetis")
endif()
#load mpi-compiler for use with parmetis and parallel_domain
if(AMDIS_HAS_PARALLEL_DOMAIN)
find_package(MPI REQUIRED)
if(MPI_FOUND)
list(APPEND AMDIS_LIBRARIES ${MPI_LIBRARIES})
list(APPEND AMDIS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif(MPI_FOUND)
if(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PETSC")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${AMDIS_DIR})
set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED)
if(PETSC_FOUND)
list(APPEND AMDIS_LIBRARIES ${PETSC_LIBRARY_SYS} ${PETSC_LIBRARIES})
list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_INCLUDES})
else()
message(FATAL_ERROR "Could nit find PETSc!")
endif(PETSC_FOUND)
elseif(AMDIS_HAS_PARALLEL_DOMAIN STREQUAL "PMTL")
find_package(MTL REQUIRED)
list(APPEND AMDIS_LIBRARIES ${MTL_LIBRARIES})
endif()
endif(AMDIS_HAS_PARALLEL_DOMAIN)
#thats bad because it affects each target
add_definitions(${AMDIS_COMPILEFLAGS})
include_directories(${AMDIS_INCLUDE_DIRS})
#load mpi-compiler for use with parmetis and parallel_domain
if(AMDiS_HAS_PARALLEL_DOMAIN)
if(NOT AMDiS_NEED_PARMETIS)
message(SEND_ERROR "parallel domain needs parmetis, but AMDiS was not compiled with parmetis support. There's something really odd..")
else()
find_package(MPI REQUIRED)
if(MPI_FOUND)
# INCLUDE(CMakeForceCompiler)
# CMAKE_FORCE_CXX_COMPILER(mpicxx "The MPI C++ compiler")
# CMAKE_FORCE_C_COMPILER(mpicc "The MPI C Compiler")
list(APPEND AMDIS_LIBRARIES ${MPI_LIBRARIES})
list(APPEND AMDiS_COMPILEFLAGS ${MPI_COMPILE_FLAGS})
list(APPEND AMDIS_INCLUDE_DIRS ${MPI_INCLUDE_PATH})
endif(MPI_FOUND)
if(AMDiS_HAS_PARALLEL_DOMAIN STREQUAL "PETSC")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${AMDIS_DIR})
set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED)
if(PETSC_FOUND)
list(APPEND AMDIS_LIBRARIES ${PETSC_LIBRARY_SYS} ${PETSC_LIBRARIES})
list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_INCLUDES})
endif(PETSc_FOUND)
elseif(AMDiS_HAS_PARALLEL_DOMAIN STREQUAL "PMTL")
find_package(MTL REQUIRED)
list(APPEND AMDIS_LIBRARIES ${MTL_LIBRARIES})
# set(AMDiS_COMPILEFLAGS "${AMDIS_COMPILEFLAGS} -DMTL_HAS_MPI -DHAVE_PARALLEL_MTL4")
endif()
endif(NOT AMDiS_NEED_PARMETIS)
endif(AMDiS_HAS_PARALLEL_DOMAIN)
#thats bad because it affects each target
add_definitions(${AMDiS_COMPILEFLAGS})
include_directories(${AMDIS_INCLUDE_DIRS})
project(AMDiS) project(AMDIS)
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 2.6)
#if revision is not set, let cmake look for the svn-version
if( NOT CurrentRevision ) SET(LIB_DIR ${AMDIS_SOURCE_DIR}/lib)
find_package(Subversion) SET(SOURCE_DIR ${AMDIS_SOURCE_DIR}/src)
if(Subversion_FOUND)
Subversion_WC_INFO(${AMDiS_SOURCE_DIR} mtlSubinfo)
set(CurrentRevision "0.9${mtlSubinfo_WC_REVISION}")
# message("current revision: ${mtlSubinfo_WC_REVISION}")
endif(Subversion_FOUND)
endif( NOT CurrentRevision )
#split the current revision in MAJOR.MINOR
string(REGEX MATCH "([0-9]+).([0-9]+)" AMDIS_MAJOR "${CurrentRevision}" )
set(AMDIS_MINOR ${CMAKE_MATCH_2})
set(AMDIS_MAJOR ${CMAKE_MATCH_1})
message("major: ${AMDIS_MAJOR}")
message("minor: ${AMDIS_MINOR}")
SET(LIB_DIR ${AMDiS_SOURCE_DIR}/lib)
SET(SOURCE_DIR ${AMDiS_SOURCE_DIR}/src)
#TODO: use the cmake build type #TODO: use the cmake build type
SET(MTL_INCLUDE_DIR ${LIB_DIR}/mtl4/ CACHE PATH "mtl4 directory") SET(MTL_INCLUDE_DIR ${LIB_DIR}/mtl4/ CACHE PATH "mtl4 directory")
...@@ -35,11 +20,10 @@ endif() ...@@ -35,11 +20,10 @@ endif()
#option(ENABLE_INTEL "use intel compiler" false) #option(ENABLE_INTEL "use intel compiler" false)
SET(ENABLE_PARALLEL_DOMAIN "OFF" CACHE STRING "use parallel domain decomposition. please set to one of: PMTL, PETSC, OFF" ) SET(ENABLE_PARALLEL_DOMAIN "OFF" CACHE STRING "use parallel domain decomposition. please set to one of: PMTL, PETSC, OFF" )
option(USE_PETSC_DEV false) option(USE_PETSC_DEV false)
#parmetis is not optional
set(ENABLE_PARMETIS false)
option(ENABLE_ZOLTAN false) option(ENABLE_ZOLTAN false)
option(ENABLE_UMFPACK "use umfpack solver" false) option(ENABLE_UMFPACK "use umfpack solver" false)
if(ENABLE_INTEL) if(ENABLE_INTEL)
Message("please set the icc manually") Message("please set the icc manually")
INCLUDE (CMakeForceCompiler) INCLUDE (CMakeForceCompiler)
...@@ -48,20 +32,20 @@ if(ENABLE_INTEL) ...@@ -48,20 +32,20 @@ if(ENABLE_INTEL)
#SET(CMAKE_C_COMPILER "icc") #SET(CMAKE_C_COMPILER "icc")
endif(ENABLE_INTEL) endif(ENABLE_INTEL)
find_package(Boost 1.42 REQUIRED) find_package(Boost 1.42 REQUIRED)
if(Boost_FOUND) if(Boost_FOUND)
# include_directories(${Boost_INCLUDE_DIR}) list(APPEND AMDIS_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
list(APPEND AMDiS_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
message("boost lib-dirs: ${Boost_LIBRARY_DIRS}") message("boost lib-dirs: ${Boost_LIBRARY_DIRS}")
message("use the boost dir: ${Boost_INCLUDE_DIR}") message("use the boost dir: ${Boost_INCLUDE_DIR}")
if(WIN32) if(WIN32)
message("the windows find_boost does not set the boost library paths, please set it") 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") SET(Boost_LIBRARY_DIRS CACHE PATH "The directory containing the boost libraries")
endif(WIN32) endif(WIN32)
list(APPEND AMDiS_LINK_DIRS ${Boost_LIBRARY_DIRS}) list(APPEND AMDIS_LINK_DIRS ${Boost_LIBRARY_DIRS})
# link_directories(${Boost_LIBRARY_DIRS})
endif(Boost_FOUND) endif(Boost_FOUND)
SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
${SOURCE_DIR}/AdaptInfo.cc ${SOURCE_DIR}/AdaptInfo.cc
${SOURCE_DIR}/AdaptInstationary.cc ${SOURCE_DIR}/AdaptInstationary.cc
...@@ -168,37 +152,53 @@ SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc ...@@ -168,37 +152,53 @@ SET(AMDIS_SRC ${SOURCE_DIR}/AdaptBase.cc
) )
if(ENABLE_PARALLEL_DOMAIN) if(ENABLE_PARALLEL_DOMAIN)
### Search for MPI compiler and get compile flags and include paths. ###
find_package(MPI REQUIRED) find_package(MPI REQUIRED)
if(MPI_FOUND) if(MPI_FOUND)
list(APPEND COMPILEFLAGS "${MPI_COMPILE_FLAGS}") list(APPEND COMPILEFLAGS "${MPI_COMPILE_FLAGS}")
include_directories(${MPI_INCLUDE_PATH}) include_directories(${MPI_INCLUDE_PATH})
endif(MPI_FOUND) endif(MPI_FOUND)
add_custom_target(parmetis-lib ALL
make
WORKING_DIRECTORY ${LIB_DIR}/ParMetis-3.1 ### Search for ParMetis ###
)
#include_directories( ${LIB_DIR}/ParMetis-3.1) find_file(PARMETIS_HEADER_FILE "parmetis.h" PATH ENV CPATH)
list(APPEND AMDiS_INCLUDE_DIRS ${LIB_DIR}/ParMetis-3.1) if(PARMETIS_HEADER_FILE)
list(APPEND AMDiS_LIBS ${LIB_DIR}/ParMetis-3.1/libparmetis.a ${LIB_DIR}/ParMetis-3.1/libmetis.a) get_filename_component(PARMETIS_INCLUDE_PATH "${PARMETIS_HEADER_FILE}" PATH CACHE)
# list(APPEND AMDiS_LINK_DIRS ${LIB_DIR}/ParMetis-3.1/) include_directories(${PARMETIS_INCLUDE_PATH})
INSTALL(FILES ${LIB_DIR}/ParMetis-3.1/parmetis.h else()
${LIB_DIR}/ParMetis-3.1/libparmetis.a message(FATAL_ERROR "Could not find ParMetis header file!")
${LIB_DIR}/ParMetis-3.1/libmetis.a endif(PARMETIS_HEADER_FILE)
DESTINATION lib/amdis/parmetis
) find_file(PARMETIS_LIB_FILE "libparmetis.a" PATH ENV LIBRARY_PATH)
set(ENABLE_PARMETIS ON) 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 ###
if(ENABLE_ZOLTAN) if(ENABLE_ZOLTAN)
find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h") find_file(ZOLTAN_HEADER_FILE "zoltan_cpp.h" PATH ENV CPATH)
if( ZOLTAN_HEADER_FILE ) if(ZOLTAN_HEADER_FILE)
get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE) get_filename_component(ZOLTAN_HEADER_DIR "${ZOLTAN_HEADER_FILE}" PATH CACHE)
include_directories(${ZOLTAN_HEADER_DIR}) include_directories(${ZOLTAN_HEADER_DIR})
else() else()
message( FATAL_ERROR "could not find zoltan.") message(FATAL_ERROR "Could not find Zoltan include file!")
endif( ZOLTAN_HEADER_FILE ) endif(ZOLTAN_HEADER_FILE)
list(APPEND COMPILEFLAGS "-DHAVE_ZOLTAN") list(APPEND COMPILEFLAGS "-DHAVE_ZOLTAN")
endif(ENABLE_ZOLTAN) endif(ENABLE_ZOLTAN)
list(APPEND COMPILEFLAGS "-DHAVE_PARALLEL_DOMAIN_AMDIS=1") list(APPEND COMPILEFLAGS "-DHAVE_PARALLEL_DOMAIN_AMDIS=1")
SET(PARALLEL_DOMAIN_AMDIS_SRC SET(PARALLEL_DOMAIN_AMDIS_SRC
${SOURCE_DIR}/parallel/ParMetisPartitioner.cc ${SOURCE_DIR}/parallel/ParMetisPartitioner.cc
...@@ -219,7 +219,7 @@ if(ENABLE_PARALLEL_DOMAIN) ...@@ -219,7 +219,7 @@ if(ENABLE_PARALLEL_DOMAIN)
set(PETSC_EXECUTABLE_RUNS ON) set(PETSC_EXECUTABLE_RUNS ON)
find_package(PETSc REQUIRED) find_package(PETSc REQUIRED)
include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include) include_directories(${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
list(APPEND AMDiS_INCLUDE_DIRS ${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include) list(APPEND AMDIS_INCLUDE_DIRS ${PETSC_DIR}/include ${PETSC_DIR}/${PETSC_ARCH}/include)
list(APPEND PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/PetscSolver.cc list(APPEND PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/PetscSolver.cc
${SOURCE_DIR}/parallel/PetscProblemStat.cc ${SOURCE_DIR}/parallel/PetscProblemStat.cc
${SOURCE_DIR}/parallel/PetscSolverFeti.cc ${SOURCE_DIR}/parallel/PetscSolverFeti.cc
...@@ -230,93 +230,31 @@ if(ENABLE_PARALLEL_DOMAIN) ...@@ -230,93 +230,31 @@ if(ENABLE_PARALLEL_DOMAIN)
find_package(MTL REQUIRED) find_package(MTL REQUIRED)
list(APPEND COMPILEFLAGS "-DMTL_HAS_MPI" "-DHAVE_PARALLEL_MTL4") list(APPEND COMPILEFLAGS "-DMTL_HAS_MPI" "-DHAVE_PARALLEL_MTL4")
list(APPEND PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/Mtl4Solver.cc) list(APPEND PARALLEL_DOMAIN_AMDIS_SRC ${SOURCE_DIR}/parallel/Mtl4Solver.cc)
list(APPEND AMDiS_LIBS ${MTL_LIBRARIES}) list(APPEND AMDIS_LIBS ${MTL_LIBRARIES})
#message("using the parallel mtl4 version")
else() else()
message(SEND_ERROR "please set the domain-decomposition version correctly") message(SEND_ERROR "Set the domain-decomposition version correctly.")
endif() endif()
INSTALL(FILES ResolveCompilerPaths.cmake FindPackageMultipass.cmake FindPETSc.cmake INSTALL(FILES ResolveCompilerPaths.cmake FindPackageMultipass.cmake FindPETSc.cmake
DESTINATION share/amdis/) DESTINATION share/amdis/)
if( USE_PETSC_DEV ) if(USE_PETSC_DEV)
list(APPEND COMPILEFLAGS "-DHAVE_PETSC_DEV") list(APPEND COMPILEFLAGS "-DHAVE_PETSC_DEV")
endif( USE_PETSC_DEV) endif( USE_PETSC_DEV)
endif(ENABLE_PARALLEL_DOMAIN) endif(ENABLE_PARALLEL_DOMAIN)
if(ENABLE_UMFPACK)
# include_directories(${LIB_DIR}/UFconfig ${LIB_DIR}/AMD/Include ${LIB_DIR}/UMFPACK/Include)
# FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/UMFPACK/Include/*.h") if(ENABLE_UMFPACK)
# INSTALL(FILES ${UMFPACK_HEADERS}
# DESTINATION include/amdis/umfpack/)
# list(APPEND deb_add_dirs "include/amdis/umfpack")
# FILE(GLOB UMFPACK_HEADERS "${LIB_DIR}/AMD/Include/*.h")
# INSTALL(FILES ${UMFPACK_HEADERS}
# DESTINATION include/amdis/amd/)
# list(APPEND deb_add_dirs "include/amdis/amd")
# FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/*.h")
# INSTALL(FILES ${HEADERS}
# DESTINATION include/amdis/ufconfig/)
# list(APPEND deb_add_dirs "include/amdis/ufconfig")
# FILE(GLOB HEADERS "${LIB_DIR}/UFconfig/xerbla/*.h")
# INSTALL(FILES ${HEADERS}
# DESTINATION include/amdis/ufconfig/xerbla)
# list(APPEND deb_add_dirs "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/)
# list(APPEND deb_add_dirs "lib/amdis/umfpack")
# INSTALL(FILES ${LIB_DIR}/AMD/Lib/libamd.a
# DESTINATION lib/amdis/amd/)
# list(APPEND deb_add_dirs "lib/amdis/amd")
#look for umfpack, we need the headers only
find_file(UMFPACK_H umfpack.h find_file(UMFPACK_H umfpack.h
HINTS /usr/include /usr/include/suitesparse /usr/include/ufsparse PATH ENV CPATH
DOC "headerfile umfpack.h for UMFPACK") HINTS /usr/include /usr/include/suitesparse /usr/include/ufsparse
if( UMFPACK_H ) DOC "headerfile umfpack.h for UMFPACK")
#construct the include path if(UMFPACK_H)
get_filename_component(UMFPACK_PATH ${UMFPACK_H} PATH) get_filename_component(UMFPACK_PATH ${UMFPACK_H} PATH)
#look for ufconfig
find_file(UFCONFIG_H UFconfig.h
HINTS /usr/include ${UMFPACK_PATH}
DOC "headerfile UFConfig.h")
if( UFCONFIG_H )
get_filename_component(UFCONFIG_PATH ${UFCONFIG_H} PATH)
else()
message(FATAL_ERROR "could not find UFConfig.h, needed for umfpack")
endif()
#look for amd
find_file(AMD_H amd.h
HINTS /usr/include/ ${UMFPACK_PATH}
DOC "headerfile amd.h")
if( AMD_H )
get_filename_component(AMD_PATH ${AMD_H} PATH)
else()
message( FATAL_ERROR "could not find amd.h, needed for umfpack")
endif()
#add the compileflags and directories
include_directories(${UMFPACK_PATH} ${UFCONFIG_PATH} ${AMD_PATH}) include_directories(${UMFPACK_PATH} ${UFCONFIG_PATH} ${AMD_PATH})
list(APPEND COMPILEFLAGS "-DHAVE_UMFPACK=1" "-DMTL_HAS_UMFPACK") list(APPEND COMPILEFLAGS "-DHAVE_UMFPACK=1" "-DMTL_HAS_UMFPACK")
else() else()
message(FATAL_ERROR "Could not find the umfpack-headers. Please install umfpack") message(FATAL_ERROR "Could not find the UMFPACK headers.")
endif() endif()
SET(RPM_DEPEND_STR "blas") SET(RPM_DEPEND_STR "blas")
endif(ENABLE_UMFPACK) endif(ENABLE_UMFPACK)
...@@ -338,16 +276,16 @@ include_directories(${REINIT_SOURCE_DIR}) ...@@ -338,16 +276,16 @@ include_directories(${REINIT_SOURCE_DIR})
#muparser includes #muparser includes
set(MUPARSER_SOURCE_DIR ${AMDiS_SOURCE_DIR}/lib/muparser_v134) set(MUPARSER_SOURCE_DIR ${AMDIS_SOURCE_DIR}/lib/muparser_v134)
file(GLOB MUPARSER_SRC ${MUPARSER_SOURCE_DIR}/src/*.cpp) file(GLOB MUPARSER_SRC ${MUPARSER_SOURCE_DIR}/src/*.cpp)
list(APPEND AMDiS_INCLUDE_DIRS ${MUPARSER_SOURCE_DIR}/include) list(APPEND AMDIS_INCLUDE_DIRS ${MUPARSER_SOURCE_DIR}/include)
#mtl4 includes #mtl4 includes
list(APPEND AMDiS_INCLUDE_DIRS ${MTL_INCLUDE_DIR}) list(APPEND AMDIS_INCLUDE_DIRS ${MTL_INCLUDE_DIR})
#include_directories(${MTL_INCLUDE_DIR}) #include_directories(${MTL_INCLUDE_DIR})
list(APPEND AMDiS_INCLUDE_DIRS ${SOURCE_DIR}) list(APPEND AMDIS_INCLUDE_DIRS ${SOURCE_DIR})
#include_directories(${SOURCE_DIR}) #include_directories(${SOURCE_DIR})
include_directories(${AMDiS_INCLUDE_DIRS}) include_directories(${AMDIS_INCLUDE_DIRS})
add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC}) add_library(amdis SHARED ${AMDIS_SRC} ${PARALLEL_DOMAIN_AMDIS_SRC})
add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC}) add_library(compositeFEM SHARED ${COMPOSITE_FEM_SRC})
...@@ -355,7 +293,7 @@ add_library(reinit SHARED ${REINIT_SRC}) ...@@ -355,7 +293,7 @@ add_library(reinit SHARED ${REINIT_SRC})
add_library(muparser SHARED ${MUPARSER_SRC}) add_library(muparser SHARED ${MUPARSER_SRC})
#target_link_libraries(compositeFEM amdis) #target_link_libraries(compositeFEM amdis)
#target_link_libraries(reinit amdis) #target_link_libraries(reinit amdis)
list(APPEND AMDiS_LIBS amdis ${Boost_LIBRARIES}) list(APPEND AMDIS_LIBS amdis ${Boost_LIBRARIES})
if(WIN32) if(WIN32)
list(APPEND COMPILEFLAGS "-D_SCL_SECURE_NO_WARNINGS" "-D_CRT_SECURE_NO_WARNINGS") list(APPEND COMPILEFLAGS "-D_SCL_SECURE_NO_WARNINGS" "-D_CRT_SECURE_NO_WARNINGS")
...@@ -422,20 +360,20 @@ list(APPEND deb_add_dirs "lib/amdis") ...@@ -422,20 +360,20 @@ list(APPEND deb_add_dirs "lib/amdis")
install(TARGETS amdis compositeFEM reinit muparser install(TARGETS amdis compositeFEM reinit muparser
LIBRARY DESTINATION lib/amdis/ ) LIBRARY DESTINATION lib/amdis/ )
configure_file(${AMDiS_SOURCE_DIR}/AMDiSConfig.cmake.in configure_file(${AMDIS_SOURCE_DIR}/AMDISConfig.cmake.in
${AMDiS_BINARY_DIR}/AMDISConfig.cmake ${AMDIS_BINARY_DIR}/AMDISConfig.cmake
@ONLY @ONLY
) )
INSTALL(FILES ${AMDiS_BINARY_DIR}/AMDISConfig.cmake INSTALL(FILES ${AMDIS_BINARY_DIR}/AMDISConfig.cmake
DESTINATION share/amdis/) DESTINATION share/amdis/)
list(APPEND deb_add_dirs "share/amdis/") list(APPEND deb_add_dirs "share/amdis/")
INSTALL(FILES ${AMDiS_SOURCE_DIR}/AMDiSUse.cmake INSTALL(FILES ${AMDIS_SOURCE_DIR}/AMDISUse.cmake
DESTINATION share/amdis/) DESTINATION share/amdis/)
#install mtl #install mtl
INSTALL(DIRECTORY ${AMDiS_SOURCE_DIR}/lib/mtl4/ INSTALL(DIRECTORY ${AMDIS_SOURCE_DIR}/lib/mtl4/
DESTINATION include/amdis/mtl4/ DESTINATION include/amdis/mtl4/
FILES_MATCHING PATTERN "*.hpp" FILES_MATCHING PATTERN "*.hpp"
PATTERN ".svn" EXCLUDE PATTERN ".svn" EXCLUDE
...@@ -444,8 +382,8 @@ INSTALL(DIRECTORY ${AMDiS_SOURCE_DIR}/lib/mtl4/ ...@@ -444,8 +382,8 @@ INSTALL(DIRECTORY ${AMDiS_SOURCE_DIR}/lib/mtl4/
PATTERN "mtl4/extern" EXCLUDE PATTERN "mtl4/extern" EXCLUDE
) )
FILE(GLOB_RECURSE mtl4_files FILE(GLOB_RECURSE mtl4_files
RELATIVE ${AMDiS_SOURCE_DIR}/lib/mtl4/boost/ RELATIVE ${AMDIS_SOURCE_DIR}/lib/mtl4/boost/
${AMDiS_SOURCE_DIR}/lib/mtl4/boost/*.hpp) ${AMDIS_SOURCE_DIR}/lib/mtl4/boost/*.hpp)
foreach(mtl4_file in ${mtl4_files}) foreach(mtl4_file in ${mtl4_files})
get_filename_component(mtl4File_path ${mtl4_file} PATH) get_filename_component(mtl4File_path ${mtl4_file} PATH)
list(APPEND deb_add_dirs "include/amdis/mtl4/boost/${mtl4File_path}") list(APPEND deb_add_dirs "include/amdis/mtl4/boost/${mtl4File_path}")
...@@ -453,21 +391,21 @@ endforeach(mtl4_file) ...@@ -453,21 +391,21 @@ endforeach(mtl4_file)
list(REMOVE_DUPLICATES deb_add_dirs) list(REMOVE_DUPLICATES deb_add_dirs)
#PACKAGES #PACKAGES
set(CPACK_PACKAGE_NAME "AMDiS") set(CPACK_PACKAGE_NAME "AMDIS")
set(CPACK_PACKAGE_CONTACT "Andreas.Naumann@tu-dresden.de") set(CPACK_PACKAGE_CONTACT "Andreas.Naumann@tu-dresden.de")
set(CPACK_PACKAGE_VERSION "${CurrentRevision}") set(CPACK_PACKAGE_VERSION "${CurrentRevision}")
set(CPACK_GENERATOR "RPM" "DEB" "TGZ") set(CPACK_GENERATOR "RPM" "DEB" "TGZ")
set(CPACK_INSTALL_PREFIX "/usr/") set(CPACK_INSTALL_PREFIX "/usr/")
configure_file(${AMDiS_SOURCE_DIR}/preinst.in configure_file(${AMDIS_SOURCE_DIR}/preinst.in
${AMDiS_BINARY_DIR}/preinst ${AMDIS_BINARY_DIR}/preinst
@ONLY) @ONLY)
configure_file(${AMDiS_SOURCE_DIR}/postrm.in configure_file(${AMDIS_SOURCE_DIR}/postrm.in
${AMDiS_BINARY_DIR}/postrm ${AMDIS_BINARY_DIR}/postrm
@ONLY) @ONLY)
set(CPACK_RPM_PACKAGE_REQUIRES "boost-devel >= 1.42, ${RPM_DEPEND_STR}") 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)") set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-dev (>= 1.42), libboost-iostreams-dev (>= 1.42), libboost-system-dev (>= 1.42), libboost-filesystem-dev (>= 1.42)")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDiS_BINARY_DIR}/preinst" "${AMDiS_BINARY_DIR}/postrm") set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${AMDIS_BINARY_DIR}/preinst" "${AMDIS_BINARY_DIR}/postrm")
include(CPack) include(CPack)
...@@ -1252,18 +1252,11 @@ namespace AMDiS { ...@@ -1252,18 +1252,11 @@ namespace AMDiS {
localAdmin->setNumberOfDofs(admin[0]->getNumberOfDofs()); localAdmin->setNumberOfDofs(admin[0]->getNumberOfDofs());
testMesh.addDOFAdmin(localAdmin); testMesh.addDOFAdmin(localAdmin);
MSG("START READ FILE %s\n", macroFilename);
MacroInfo *testMacroInfo = MacroInfo *testMacroInfo =
MacroReader::readMacro(macroFilename, &testMesh, periodicFilename, check); MacroReader::readMacro(macroFilename, &testMesh, periodicFilename, check);
testMacroInfo->clear(); testMacroInfo->clear();
delete testMacroInfo; delete testMacroInfo;
MSG("TEST MESH HAS %d ELEMENTS\n", testMesh.getNumberOfMacros());
MPI::Finalize();
exit(0);
// === Check the mesh structure. === // === Check the mesh structure. ===
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment