Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmerice/CMakeLists.txt
3194 views
1
INCLUDE(CheckIncludeFiles)
2
3
SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${PROJECT_SOURCE_DIR}/elmerice/cmake/Modules")
4
#TODO: is this proper way of choosing shared library API?
5
IF(WIN32)
6
UNSET(HAVE_DLOPEN_API)
7
SET(HAVE_LOADLIBRARY_API TRUE)
8
ELSEIF(UNIX)
9
SET(HAVE_DLOPEN_API TRUE)
10
SET(HAVE_DLSYM TRUE)
11
ENDIF()
12
13
14
INCLUDE(CheckTypeSize)
15
CHECK_TYPE_SIZE(long LONG_SIZE)
16
IF(LONG_SIZE EQUAL 4)
17
SET(OFF_KIND "selected_int_kind(9)")
18
ELSEIF(LONG_SIZE EQUAL 8)
19
SET(OFF_KIND "selected_int_kind(18)")
20
ENDIF()
21
22
SET(ELMER_SOLVER_HOME "${CMAKE_INSTALL_PREFIX}/share/elmersolver" CACHE PATH "")
23
24
SET(SHL_EXTENSION ".so")
25
IF(WIN32)
26
SET(SHL_EXTENSION ".dll")
27
ENDIF()
28
IF(APPLE)
29
SET(SHL_EXTENSION ".dylib")
30
ENDIF()
31
32
INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}")
33
34
35
IF (WITH_PROJ4)
36
FIND_PACKAGE(PROJ)
37
FIND_PACKAGE(FORTRANGIS)
38
39
IF(PROJ_FOUND AND FORTRANGIS_FOUND)
40
SET(HAVE_PROJ TRUE)
41
SET(HAVE_FORTRANGIS TRUE)
42
MARK_AS_ADVANCED(HAVE_PROJ HAVE_FORTRANGIS)
43
ADD_DEFINITIONS(-DHAVE_PROJ)
44
MESSAGE(STATUS " PROJ & FORTRANGIS: " "${PROJ_FOUND} & ${FORTRANGIS_FOUND}")
45
MESSAGE(STATUS " PROJ_INC: " "${PROJ_INCLUDE_DIR}")
46
MESSAGE(STATUS " PROJ_LIB: " "${PROJ_LIBRARY}")
47
MESSAGE(STATUS " FORTRANGIS_INC: " "${FORTRANGIS_INCLUDE_DIR}")
48
MESSAGE(STATUS " FORTRANGIS_LIB: " "${FORTRANGIS_LIBRARY}")
49
50
MESSAGE(STATUS "Compile ProjUtils with Proj4 support")
51
ELSE()
52
MESSAGE(STATUS "Library not found: >PROJ_FOUND< = ${PROJ_FOUND} and/or >FORTRANGIS_FOUND< = ${FORTRANGIS_FOUND}")
53
MESSAGE(WARNING " \n Missing: >PROJ_INCLUDE_DIR< , >PROJ_LIBRARY< , >FORTRANGIS_INCLUDE_DIR< , >FORTRANGIS_LIBRARY< \n to compile ProjUtils support for Proj4")
54
ENDIF()
55
ENDIF()
56
57
ADD_SUBDIRECTORY(Utils)
58
ADD_SUBDIRECTORY(UserFunctions)
59
ADD_SUBDIRECTORY(Solvers)
60
IF(BUILD_TESTING)
61
ADD_SUBDIRECTORY(Tests)
62
ENDIF()
63
64
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Solvers/Permafrost/permafrostmaterialdb.dat
65
${CMAKE_CURRENT_BINARY_DIR}/Solvers/Permafrost/permafrostmaterialdb.dat COPYONLY)
66
67
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Solvers/Permafrost/permafrostmaterialdb.dat DESTINATION "share/elmersolver/lib")
68
69