@@ -76,15 +76,14 @@ MESSAGE(STATUS "Building libSplash version ${SPLASH_VERSION}")
76
76
FIND_PACKAGE (HDF5 1.8.6 REQUIRED)
77
77
INCLUDE_DIRECTORIES (SYSTEM ${HDF5_INCLUDE_DIR} )
78
78
79
- # check if static version of HDF5 is used
80
- # CMake prefers .so/shared libraries
81
- # if we find a static HDF5 lib in the ${HDF5_LIBRARIES}
82
- # it means there is only a static version installed
83
- SET (HDF5_IS_STATIC ON )
84
- STRING (FIND "${HDF5_LIBRARIES} " "hdf5.a" HDF5_IS_STATIC_POS)
85
- IF (${HDF5_IS_STATIC_POS} EQUAL -1)
86
- SET (HDF5_IS_STATIC OFF )
87
- ENDIF (${HDF5_IS_STATIC_POS} EQUAL -1)
79
+ # check if shared version of HDF5 can be used
80
+ # CMake prefers .so/shared libraries over static ones
81
+ SET (HDF5_HAS_SHARED ON )
82
+ STRING (FIND "${HDF5_LIBRARIES} " "hdf5.so" HDF5_HAS_SHARED_POS)
83
+ IF (${HDF5_HAS_SHARED_POS} EQUAL -1)
84
+ SET (HDF5_HAS_SHARED OFF )
85
+ ENDIF ()
86
+ UNSET (HDF5_HAS_SHARED_POS)
88
87
89
88
#-------------------------------------------------------------------------------
90
89
@@ -147,22 +146,22 @@ AUX_SOURCE_DIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/tools" TOOLS_SOURCES)
147
146
#-------------------------------------------------------------------------------
148
147
149
148
# build libsplash shared (if shared HDF5 is used)
150
- IF (HDF5_IS_STATIC )
149
+ IF (NOT HDF5_HAS_SHARED )
151
150
MESSAGE (WARNING "Skipping dynamic libSplash because HDF5 library is static" )
152
- ELSE (HDF5_IS_STATIC )
151
+ ELSE ()
153
152
ADD_LIBRARY (splash SHARED ${LIBRARY_SOURCES} )
154
153
TARGET_LINK_LIBRARIES (splash ${SPLASH_LIBS} )
155
- ENDIF (HDF5_IS_STATIC )
154
+ ENDIF ()
156
155
157
156
# build libsplash static
158
157
ADD_LIBRARY (splash_static STATIC ${LIBRARY_SOURCES} )
159
158
SET_TARGET_PROPERTIES (splash_static PROPERTIES OUTPUT_NAME splash)
160
159
TARGET_LINK_LIBRARIES (splash_static ${SPLASH_LIBS} )
161
160
162
161
# install libs
163
- IF (NOT HDF5_IS_STATIC )
162
+ IF (HDF5_HAS_SHARED )
164
163
INSTALL (TARGETS splash LIBRARY DESTINATION lib)
165
- ENDIF (NOT HDF5_IS_STATIC )
164
+ ENDIF ()
166
165
167
166
INSTALL (TARGETS splash_static ARCHIVE DESTINATION lib)
168
167
@@ -220,7 +219,11 @@ OPTION(WITH_TOOLS "enable splashtools" ON)
220
219
IF (WITH_TOOLS)
221
220
MESSAGE (STATUS "Building splashtools" )
222
221
223
- SET (TOOLS_LIBS ${TOOLS_LIBS} splash_static)
222
+ IF (HDF5_HAS_SHARED)
223
+ SET (TOOLS_LIBS ${TOOLS_LIBS} splash)
224
+ ELSE ()
225
+ SET (TOOLS_LIBS ${TOOLS_LIBS} splash_static)
226
+ ENDIF ()
224
227
INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR} )
225
228
226
229
# MPI for tools
0 commit comments