Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/fem/CMakeLists.txt
3196 views
1
2
INCLUDE(CheckIncludeFiles)
3
4
CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H)
5
6
7
FUNCTION(FORTRANIZE infile outfile)
8
SET(RESULT "")
9
FILE(STRINGS "${infile}" lines)
10
FOREACH(i IN LISTS lines)
11
STRING(REGEX REPLACE "/\\*.*\\*/" "" i "${i}")
12
IF(i)
13
SET(RESULT "${RESULT}${i}\n")
14
ENDIF(i)
15
ENDFOREACH()
16
FILE(WRITE "${outfile}" "${RESULT}")
17
ENDFUNCTION(FORTRANIZE infile outfile)
18
19
#TODO: is this proper way of choosing shared library API?
20
IF(WIN32)
21
UNSET(HAVE_DLOPEN_API)
22
SET(HAVE_LOADLIBRARY_API TRUE)
23
ELSEIF(UNIX)
24
SET(HAVE_DLOPEN_API TRUE)
25
SET(HAVE_DLSYM TRUE)
26
ENDIF()
27
28
#STRING(COMPARE EQUAL ${FortranCInterface_GLOBAL_CASE} "LOWER" FC_LINK_CASE)
29
#STRING(COMPARE EQUAL ${FortranCInterface_GLOBAL_SUFFIX} "" FC_LINK_SUFFIX)
30
#IF(FC_LINK_CASE)
31
# IF(FC_LINK_SUFFIX)
32
# SET(ELMER_LINKTYP 3)
33
# ELSE()
34
# SET(ELMER_LINKTYP 1)
35
# ENDIF()
36
#ELSE()
37
# SET(ELMER_LINKTYP 2)
38
#ENDIF()
39
40
#FIND_FILE(FEM_LICENSES LICENSES PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
41
#MARK_AS_ADVANCED(FEM_LICENSES)
42
#INSTALL(FILES ${FEM_LICENSES} DESTINATION "share/elmersolver/license_texts/fem")
43
INSTALL(FILES "LICENSES" DESTINATION "share/elmersolver/license_texts/fem")
44
#MARK_AS_ADVANCED(FEM_LICENSES)
45
46
INCLUDE(CheckTypeSize)
47
CHECK_TYPE_SIZE(long LONG_SIZE)
48
IF(LONG_SIZE EQUAL 4)
49
SET(OFF_KIND "selected_int_kind(9)")
50
ELSEIF(LONG_SIZE EQUAL 8)
51
SET(OFF_KIND "selected_int_kind(18)")
52
ENDIF()
53
54
#SET(FC_CHAR_PTR "(P,L) char *P, int L")
55
SET(ELMER_SOLVER_HOME "${CMAKE_INSTALL_PREFIX}/share/elmersolver" CACHE PATH "")
56
57
SET(SHL_EXTENSION ".so")
58
IF(WIN32)
59
SET(SHL_EXTENSION ".dll")
60
ENDIF()
61
IF(APPLE)
62
SET(SHL_EXTENSION ".dylib")
63
ENDIF()
64
65
# this should just use ELMER_FEM_VERSION as plane VERSION is to broad on prone to conflicts
66
set(VERSION ${ELMER_FEM_VERSION})
67
CONFIGURE_FILE(config.h.cmake config.h.commented)
68
FORTRANIZE(${CMAKE_BINARY_DIR}/fem/config.h.commented ${CMAKE_BINARY_DIR}/fem/config.h)
69
70
INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}")
71
ADD_SUBDIRECTORY(src)
72
IF(BUILD_TESTING)
73
ADD_SUBDIRECTORY(tests)
74
ENDIF()
75
76