@@ -10,7 +10,6 @@ cmake_minimum_required(VERSION 3.8)
10
10
# Determine version number from git metadata
11
11
include ("${CMAKE_CURRENT_LIST_DIR} /cmake/FlibcppVersion.cmake" )
12
12
flibcpp_find_version (Flibcpp "${CMAKE_CURRENT_LIST_DIR} /cmake/git-version.txt" )
13
- message (STATUS "Flibcpp version: ${Flibcpp_VERSION} " )
14
13
15
14
project (Flibcpp VERSION "${Flibcpp_VERSION} " LANGUAGES CXX Fortran )
16
15
@@ -22,17 +21,17 @@ option(FLIBCPP_DEV "Default to using development-centered options" OFF)
22
21
option (FLIBCPP_BUILD_DOCS "Build documentation with Sphinx" ${FLIBCPP_DEV} )
23
22
option (FLIBCPP_USE_SWIG "Regenerate source files using SWIG" ${FLIBCPP_DEV} )
24
23
25
- if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME )
24
+ if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME )
26
25
set (_DEFAULT_BUILD_EXAMPLES ON )
27
26
endif ()
28
27
option (FLIBCPP_BUILD_EXAMPLES "Build examples" ${_DEFAULT_BUILD_EXAMPLES} )
29
28
30
- if (FLIBCPP_DEV )
29
+ if (FLIBCPP_DEV )
31
30
set (_DEFAULT_BUILD_TESTS ON )
32
31
endif ()
33
32
option (FLIBCPP_BUILD_TESTS "Build Flibcpp tests" ${_DEFAULT_BUILD_TESTS} )
34
33
35
- if (FLIBCPP_BUILD_TESTS OR FLIBCPP_BUILD_EXAMPLES )
34
+ if (FLIBCPP_BUILD_TESTS OR FLIBCPP_BUILD_EXAMPLES )
36
35
set (_DEFAULT_BUILD_TESTING ON )
37
36
endif ()
38
37
option (BUILD_TESTING "Enable CTest" ${_DEFAULT_BUILD_TESTING} )
@@ -44,10 +43,10 @@ option(BUILD_TESTING "Enable CTest" ${_DEFAULT_BUILD_TESTING})
44
43
# Fortran standard
45
44
set (FLIBCPP_FORTRAN_STD "03" CACHE STRING
46
45
"Fortran standard for compiling generated code (options: 03/08/15/18/none)" )
47
- if (FLIBCPP_FORTRAN_STD AND NOT FLIBCPP_FORTRAN_STD STREQUAL "none" )
48
- if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
46
+ if (FLIBCPP_FORTRAN_STD AND NOT FLIBCPP_FORTRAN_STD STREQUAL "none" )
47
+ if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
49
48
set (_FLIBCPP_STD_FLAGS "-std=f20${FLIBCPP_FORTRAN_STD} " )
50
- elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
49
+ elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
51
50
set (_FLIBCPP_STD_FLAGS "-std${FLIBCPP_FORTRAN_STD} " )
52
51
else ()
53
52
message (WARNING "Fortran standard flags are not known for "
@@ -60,8 +59,8 @@ if (FLIBCPP_FORTRAN_STD AND NOT FLIBCPP_FORTRAN_STD STREQUAL "none")
60
59
endif ()
61
60
62
61
# Build type
63
- if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
64
- if (FLIBCPP_DEV )
62
+ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES )
63
+ if (FLIBCPP_DEV )
65
64
set (_CMAKE_BUILD_TYPE "Debug" )
66
65
else ()
67
66
set (_CMAKE_BUILD_TYPE "RelWithDebInfo" )
@@ -75,25 +74,25 @@ endif()
75
74
#---------------------------------------------------------------------------#
76
75
77
76
list (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /cmake" )
78
- if (CMAKE_VERSION VERSION_LESS 3.18 )
77
+ if (CMAKE_VERSION VERSION_LESS 3.18 )
79
78
list (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR} /cmake/backport-cmake-318" )
80
79
endif ()
81
80
82
- if (FLIBCPP_USE_SWIG )
81
+ if (FLIBCPP_USE_SWIG )
83
82
find_package (SWIG COMPONENTS fortran REQUIRED )
84
83
85
- if (CMAKE_VERSION VERSION_LESS 3.12 )
84
+ if (CMAKE_VERSION VERSION_LESS 3.12 )
86
85
message (FATAL_ERROR "CMake 3.12 or higher is required to regenerate the "
87
86
"Fortran bindings using SWIG. Set FLIBCPP_USE_SWIG to OFF "
88
87
"and reconfigure." )
89
88
endif ()
90
89
91
- if (CMAKE_VERSION GREATER_EQUAL 3.13 )
90
+ if (CMAKE_VERSION GREATER_EQUAL 3.13 )
92
91
cmake_policy (SET CMP0078 "NEW" )
93
92
else ()
94
93
set (FLIBCPP_CMP0078 "NEW" )
95
94
endif ()
96
- if (CMAKE_VERSION GREATER_EQUAL 3.14 )
95
+ if (CMAKE_VERSION GREATER_EQUAL 3.14 )
97
96
cmake_policy (SET CMP0086 "NEW" )
98
97
else ()
99
98
set (FLIBCPP_CMP0086 "NEW" )
@@ -121,7 +120,7 @@ set(FLIBCPP_NAMESPACE "Flibcpp::")
121
120
set (FLIBCPP_LIBRARIES )
122
121
123
122
function (flibcpp_add_module name )
124
- if (FLIBCPP_USE_SWIG )
123
+ if (FLIBCPP_USE_SWIG )
125
124
# SWIG is available; actually generate the library dynamically.
126
125
127
126
set (src_file "${FLIBCPP_INTERFACE_DIR} /${name} .i" )
@@ -173,7 +172,7 @@ function(flibcpp_add_module name)
173
172
# Compile with e.g. std=c++11 instead of =gnu++11
174
173
set_property (TARGET ${name} PROPERTY CXX_EXTENSIONS OFF )
175
174
176
- if (_FLIBCPP_STD_FLAGS )
175
+ if (_FLIBCPP_STD_FLAGS )
177
176
# Compile Fortran code with a particular standard
178
177
target_compile_options (${name}
179
178
PUBLIC $< $< COMPILE_LANGUAGE:Fortran> :${_FLIBCPP_STD_FLAGS} >
@@ -207,7 +206,7 @@ configure_file("${CMAKE_CURRENT_LIST_DIR}/cmake/flibcpp_version.cpp.in"
207
206
flibcpp_add_module (flc "${FLIBCPP_VERSION_CPP} " )
208
207
209
208
# Also install 'import_flc' if using SWIG
210
- if (FLIBCPP_USE_SWIG )
209
+ if (FLIBCPP_USE_SWIG )
211
210
install (FILES
212
211
"${CMAKE_CURRENT_SOURCE_DIR} /include/import_flc.i"
213
212
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
@@ -273,15 +272,15 @@ install(FILES
273
272
# TESTING AND DOCS
274
273
#---------------------------------------------------------------------------#
275
274
276
- if (FLIBCPP_BUILD_TESTS )
275
+ if (FLIBCPP_BUILD_TESTS )
277
276
add_subdirectory (test )
278
277
endif ()
279
278
280
- if (FLIBCPP_BUILD_EXAMPLES )
279
+ if (FLIBCPP_BUILD_EXAMPLES )
281
280
add_subdirectory (example )
282
281
endif ()
283
282
284
- if (FLIBCPP_BUILD_DOCS )
283
+ if (FLIBCPP_BUILD_DOCS )
285
284
add_subdirectory (doc )
286
285
endif ()
287
286
0 commit comments