CMakeLists.txt 3.14 KB
Newer Older
1 2 3
# A minimum version for cmake command is required.
cmake_minimum_required(VERSION 3.8)

4 5 6 7 8 9 10 11 12 13 14
# TODO Add check whether the provided value is valid.
# From https://cmake.org/pipermail/cmake/2008-September/023808.html
if(DEFINED CMAKE_BUILD_TYPE)
   set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose the type of
build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug
Release RelWithDebInfo MinSizeRel.")
else()
   set(CMAKE_BUILD_TYPE Debug CACHE STRING "Choose the type of build,
options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release
RelWithDebInfo MinSizeRel.")
endif()
15 16


17
project( "MoReFEM_CMAKE")
18

19
set_property(GLOBAL PROPERTY USE_FOLDERS OFF)
20

21 22 23
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
24 25 26

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

27
MESSAGE("Module path: ${CMAKE_MODULE_PATH}")
28 29

include(CustomCommands)
30 31 32 33 34 35

if(NOT PATH_FILE)
    message(FATAL_ERROR "-DPATH_FILE must be present in the command line and point to a file that specify the paths and settings to use in the build. A default one is defined in cmake/Paths.cmake; feel free to copy and adapt it to your needs.")
endif()

include(${PATH_FILE})
36

37 38 39 40 41 42 43 44 45 46
# All --all_load in target_link_libraries of executables if STATIC library are chose.
    
if(LIBRARY_TYPE MATCHES STATIC)
    set(ALL_LOAD_FLAG "-all_load")
else()
    set(ALL_LOAD_FLAG "")
endif()

#MESSAGE("ALL_LOAD_FLAG: ${ALL_LOAD_FLAG}")

47 48
MESSAGE("Generated with config types: ${CMAKE_CONFIGURATION_TYPES}")

49 50 51 52 53 54 55
include(compiler)



message("CMAKE_C_COMPILER " ${CMAKE_C_COMPILER})
message("CMAKE_C_COMPILER_ID" ${CMAKE_C_COMPILER_ID})

56

57
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Sources /
58
                    ${CMAKE_CURRENT_SOURCE_DIR}/Sources/ThirdParty/Source/Tclap/include /
59 60 61 62 63 64 65 66 67 68
                    ${OPS_DIR} /
                    ${SELDON_DIR} /
                    ${OPEN_MPI_INCL_DIR} /
                    ${PETSC_GENERAL_INCL_DIR} /
                    ${PETSC_DEBUG_INCL_DIR} /
                    ${PARMETIS_INCL_DIR} /
                    ${LUA_INCL_DIR} /
                    ${BOOST_INCL_DIR}                    
                    )

69 70 71
# TO complete for release mode! (see SCons)
add_definitions(-DOPS_WITH_EXCEPTION)
add_definitions(-DSELDON_WITH_LAPACK -DSELDON_WITH_LAPACK  -DSELDON_WITH_BLAS -DSELDON_WITH_COMPILED_LIBRARY -DSELDON_CHECK_BOUNDS -DSELDON_CHECK_DIMENSIONS)
72

73 74 75 76 77 78 79 80

morefem_find_library(LIB_OPEN_MPI "mpi" ${OPEN_MPI_LIB_DIR} "Openmpi")
morefem_find_library(LIB_OPEN_MPI_CXX "mpi_cxx" ${OPEN_MPI_LIB_DIR} "Openmpi (C++)")
morefem_find_library(LIB_PETSC "petsc" ${PETSC_DEBUG_LIB_DIR} "Petsc")
morefem_find_library(LIB_PARMETIS "parmetis" ${PARMETIS_LIB_DIR} "Parmetis")
morefem_find_library(LIB_LUA "lua" ${LUA_LIB_DIR} "Lua")
morefem_find_library(LIB_BOOST_FILESYSTEM "boost_filesystem" ${BOOST_LIB_DIR} "Boost filesystem")
morefem_find_library(LIB_BOOST_SYSTEM "boost_system" ${BOOST_LIB_DIR} "Boost system")
81 82 83 84 85 86 87 88 89 90 91 92 93

set(MOREFEM_COMMON_DEP
    ${LIB_OPEN_MPI}
    ${LIB_OPEN_MPI_CXX}
    ${LIB_PETSC} 
    ${LIB_PARMETIS} 
    ${LIB_LUA} 
    ${LIB_BOOST_FILESYSTEM} 
    ${LIB_BOOST_SYSTEM}                      
    "-framework Accelerate" 
)


94 95
add_subdirectory(Sources)
      
96 97