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