git-svn-id: http://svn.sintef.no/trondheim/IFEM/trunk@917 e10b68d5-8a6e-419e-a041-bce267b0401d
114 lines
3.1 KiB
CMake
114 lines
3.1 KiB
CMake
PROJECT(FiniteDefElasticity)
|
|
|
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
|
|
|
# Required defines
|
|
SET(CMAKE_CXX_FLAGS "-Dreal=double -DUSE_FTNMAT")
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DINDEX_CHECK=2")
|
|
IF(VERBOSE_DEBUG GREATER 0)
|
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DINT_DEBUG=${VERBOSE_DEBUG}")
|
|
ENDIF(VERBOSE_DEBUG GREATER 0)
|
|
|
|
IF(NOT CMAKE_BUILD_TYPE)
|
|
SET(CMAKE_BUILD_TYPE Release)
|
|
ENDIF(NOT CMAKE_BUILD_TYPE)
|
|
|
|
SET(IFEM_BUILD_TYPE ${CMAKE_BUILD_TYPE})
|
|
IF(${CMAKE_BUILD_TYPE} MATCHES "Nopt")
|
|
SET(CMAKE_BUILD_TYPE Debug)
|
|
ENDIF(${CMAKE_BUILD_TYPE} MATCHES "Nopt")
|
|
|
|
# Add local modules
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
|
|
${PROJECT_SOURCE_DIR}/../../cmake/Modules
|
|
$ENV{HOME}/cmake/Modules)
|
|
|
|
ENABLE_LANGUAGE(Fortran)
|
|
IF(CMAKE_Fortran_COMPILER MATCHES ifort)
|
|
SET(LANGUAGE_LIBS -lifcore)
|
|
ENDIF(CMAKE_Fortran_COMPILER MATCHES ifort)
|
|
|
|
ENABLE_LANGUAGE(CXX)
|
|
IF(CMAKE_CXX_COMPILER MATCHES icpc)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_MKL")
|
|
ELSE(CMAKE_CXX_COMPILER MATCHES icpc)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_CBLAS")
|
|
ENDIF(CMAKE_CXX_COMPILER MATCHES icpc)
|
|
|
|
# Required packages
|
|
FIND_PACKAGE(Boost REQUIRED)
|
|
FIND_PACKAGE(GoTools REQUIRED)
|
|
FIND_PACKAGE(GoTrivariate REQUIRED)
|
|
FIND_PACKAGE(LAPACK REQUIRED)
|
|
FIND_PACKAGE(ARPACK REQUIRED)
|
|
FIND_PACKAGE(IFEM REQUIRED)
|
|
|
|
# Optional packages
|
|
IF(${ENABLE_PETSC})
|
|
FIND_PACKAGE(Petsc)
|
|
ENDIF(${ENABLE_PETSC})
|
|
IF(NOT "${DISABLE_SUPERLU}")
|
|
FIND_PACKAGE(SuperLU)
|
|
ENDIF(NOT "${DISABLE_SUPERLU}")
|
|
IF(${ENABLE_SAMG})
|
|
FIND_PACKAGE(SAMG)
|
|
ENDIF(${ENABLE_SAMG})
|
|
FIND_PACKAGE(VTFWriter)
|
|
|
|
# Required libraries
|
|
SET(DEPLIBS ${IFEM_LIBRARIES}
|
|
${GoTrivariate_LIBRARIES} ${GoTools_LIBRARIES}
|
|
${ARPACK_LIBRARIES} ${LAPACK_LIBRARIES}
|
|
${Boost_LIBRARIES} ${LANGUAGE_LIBS}
|
|
)
|
|
|
|
# Optional libraries
|
|
IF(SuperLU_MT_LIBRARIES AND "${ENABLE_SUPERLU_MT}")
|
|
FIND_PACKAGE(Threads REQUIRED)
|
|
SET(DEPLIBS ${DEPLIBS} ${SuperLU_MT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
|
ELSEIF(SuperLU_LIBRARIES)
|
|
SET(DEPLIBS ${DEPLIBS} ${SuperLU_LIBRARIES})
|
|
ENDIF(SuperLU_MT_LIBRARIES AND "${ENABLE_SUPERLU_MT}")
|
|
|
|
IF(PETSC_LIBRARIES)
|
|
FIND_PACKAGE(SLEPc)
|
|
FIND_PACKAGE(MPI REQUIRED)
|
|
IF(SLEPC_LIBRARIES)
|
|
SET(DEPLIBS ${DEPLIBS} ${SLEPC_LIBRARIES})
|
|
ENDIF(SLEPC_LIBRARIES)
|
|
SET(DEPLIBS ${DEPLIBS} ${PETSC_LIBRARIES} ${MPI_LIBRARIES})
|
|
ENDIF(PETSC_LIBRARIES)
|
|
|
|
IF(SAMG_LIBRARIES)
|
|
SET(DEPLIBS ${DEPLIBS} ${SAMG_LIBRARIES})
|
|
ENDIF(SAMG_LIBRARIES)
|
|
|
|
IF(VTFWRITER_LIBRARIES)
|
|
SET(DEPLIBS ${DEPLIBS} ${VTFWRITER_LIBRARIES})
|
|
ENDIF(VTFWRITER_LIBRARIES)
|
|
|
|
INCLUDE_DIRECTORIES(${IFEM_INCLUDES} ${PROJECT_SOURCE_DIR}/../LinearElasticity)
|
|
|
|
SET(EXECUTABLE_OUTPUT_PATH bin)
|
|
|
|
IF(NOT WIN32)
|
|
# Emit position-independent code, suitable for dynamic linking
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
|
# Enable all warnings
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
|
ENDIF(NOT WIN32)
|
|
|
|
FILE(GLOB_RECURSE NonLinEl_SRCS
|
|
${PROJECT_SOURCE_DIR}/../LinearElasticity/SIMLinEl*.C
|
|
${PROJECT_SOURCE_DIR}/*.[Cf])
|
|
|
|
ADD_EXECUTABLE(NonLinEl ${NonLinEl_SRCS})
|
|
TARGET_LINK_LIBRARIES(NonLinEl ${DEPLIBS})
|
|
|
|
# 'install' target
|
|
IF(WIN32)
|
|
# TODO
|
|
ELSE(WIN32)
|
|
# TODO
|
|
ENDIF(WIN32)
|