File tree 3 files changed +26
-9
lines changed
3 files changed +26
-9
lines changed Original file line number Diff line number Diff line change @@ -111,12 +111,6 @@ find_package(Threads REQUIRED)
111
111
# Set script directory
112
112
set (SCRIPT_DIR ${CMAKE_CURRENT_SOURCE_DIR} /tools)
113
113
114
- # If we build the C Interface we require shared libraries
115
- if (SERIALBOX_ENABLE_C AND NOT (SERIALBOX_BUILD_SHARED))
116
- message (STATUS "SERIALBOX_ENABLE_C requires shared libraries, setting SERIALBOX_BUILD_SHARED=ON" )
117
- set (SERIALBOX_BUILD_SHARED ON )
118
- endif ()
119
-
120
114
# If we build the Fortran Interface, we need a Fortran compiler
121
115
if (SERIALBOX_ENABLE_FORTRAN)
122
116
enable_language (Fortran)
@@ -260,7 +254,7 @@ if(SERIALBOX_ENABLE_EXPERIMENTAL_FILESYSTEM)
260
254
if ( STD_FILESYSTEM_LIB_CHECK )
261
255
message (STATUS "Using std::experimental::filesystem (no dependency on compiled boost libs)" )
262
256
add_library (SerialboxFilesytemTarget INTERFACE )
263
- target_link_libraries (SerialboxFilesytemTarget INTERFACE stdc++fs )
257
+ target_link_libraries (SerialboxFilesytemTarget INTERFACE ${STD_FILESYSTEM_LIB_CHECK} )
264
258
set (SERIALBOX_FILESYSTEM_LIBRARY_STRING "SERIALBOX_USE_STD_EXPERIMENTAL_FILESYSTEM" )
265
259
set (_use_boost_filesystem OFF )
266
260
else ()
Original file line number Diff line number Diff line change @@ -84,17 +84,23 @@ endif(SERIALBOX_HAS_C)
84
84
if (SERIALBOX_HAS_FORTRAN)
85
85
get_property (_static_lib TARGET Serialbox::SerialboxFortranStatic PROPERTY LOCATION )
86
86
message (STATUS " Static serialbox FORTRAN: ${_static_lib} " )
87
+
88
+ if (SERIALBOX_HAS_SHARED_LIBRARY)
89
+ get_property (_shared_lib TARGET Serialbox::SerialboxFortranShared PROPERTY LOCATION )
90
+ message (STATUS " Shared serialbox FORTRAN: ${_shared_lib} " )
91
+ endif ()
92
+
87
93
endif (SERIALBOX_HAS_FORTRAN)
88
94
89
95
#===---------------------------------------------------------------------------------------------===
90
96
# Find external libraries
91
97
#====--------------------------------------------------------------------------------------------===
92
98
if (NOT (DEFINED SERIALBOX_NO_EXTERNAL_LIBS))
93
-
94
99
include (CMakeFindDependencyMacro)
95
100
#
96
101
# Pthreads
97
102
#
103
+ message ( STATUS "Serialbox: find_depencency( Threads )" )
98
104
find_dependency(Threads)
99
105
100
106
#
@@ -111,7 +117,8 @@ if(NOT(DEFINED SERIALBOX_NO_EXTERNAL_LIBS))
111
117
set (BOOST_INCLUDEDIR "${SERIALBOX_BOOST_INCLUDE_DIRS} " )
112
118
set (Boost_NO_SYSTEM_PATHS "ON" ) # Force boost to search locations specified above
113
119
114
- find_package (Boost
120
+ message ( STATUS "Serialbox: find_depencency( Boost ${SERIALBOX_BOOST_VERSION} EXACT COMPONENTS ${SERIALBOX_REQUIRED_BOOST_COMPONENTS} }" )
121
+ find_dependency(Boost
115
122
${SERIALBOX_BOOST_VERSION} EXACT COMPONENTS ${SERIALBOX_REQUIRED_BOOST_COMPONENTS} )
116
123
if (Boost_FOUND)
117
124
list (APPEND SERIALBOX_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} )
Original file line number Diff line number Diff line change @@ -44,6 +44,22 @@ if(SERIALBOX_ENABLE_FORTRAN)
44
44
ARCHIVE DESTINATION lib
45
45
)
46
46
47
+ if (BUILD_SHARED_LIBS )
48
+ set_target_properties ( SerialboxFortranSerializeObjects PROPERTIES POSITION_INDEPENDENT_CODE ON )
49
+ set_target_properties ( SerialboxFortranObjects PROPERTIES POSITION_INDEPENDENT_CODE ON )
50
+ add_library (SerialboxFortranShared SHARED $<TARGET_OBJECTS:SerialboxFortranSerializeObjects> $<TARGET_OBJECTS:SerialboxFortranObjects>)
51
+ target_link_libraries (SerialboxFortranShared PUBLIC SerialboxFortranObjects)
52
+ target_link_libraries (SerialboxFortranShared PUBLIC SerialboxFortranSerializeObjects)
53
+ target_link_libraries (SerialboxFortranShared PUBLIC SerialboxCShared)
54
+ set_target_properties (SerialboxFortranShared PROPERTIES VERSION ${Serialbox_VERSION_STRING} )
55
+
56
+ install (TARGETS SerialboxFortranShared
57
+ EXPORT SerialboxTargets
58
+ LIBRARY DESTINATION lib
59
+ ARCHIVE DESTINATION lib
60
+ )
61
+ endif ()
62
+
47
63
# Install mod files
48
64
foreach (source ${SOURCES_FORTRAN} ${SOURCES_FORTRAN_SERIALIZE} )
49
65
get_filename_component (module_name ${source} NAME_WE )
You can’t perform that action at this time.
0 commit comments