Skip to content

Commit 3941f50

Browse files
author
f-schmitt-zih
committed
Merge pull request ComputationalRadiationPhysics#192 from ax3l/topic-cmakeHasShared
CMake: HDF5 Has Shared
2 parents e60dd18 + 115df0e commit 3941f50

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

CMakeLists.txt

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,14 @@ MESSAGE(STATUS "Building libSplash version ${SPLASH_VERSION}")
7676
FIND_PACKAGE(HDF5 1.8.6 REQUIRED)
7777
INCLUDE_DIRECTORIES(SYSTEM ${HDF5_INCLUDE_DIR})
7878

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)
8887

8988
#-------------------------------------------------------------------------------
9089

@@ -147,22 +146,22 @@ AUX_SOURCE_DIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/tools" TOOLS_SOURCES)
147146
#-------------------------------------------------------------------------------
148147

149148
# build libsplash shared (if shared HDF5 is used)
150-
IF(HDF5_IS_STATIC)
149+
IF(NOT HDF5_HAS_SHARED)
151150
MESSAGE(WARNING "Skipping dynamic libSplash because HDF5 library is static")
152-
ELSE(HDF5_IS_STATIC)
151+
ELSE()
153152
ADD_LIBRARY(splash SHARED ${LIBRARY_SOURCES})
154153
TARGET_LINK_LIBRARIES(splash ${SPLASH_LIBS})
155-
ENDIF(HDF5_IS_STATIC)
154+
ENDIF()
156155

157156
# build libsplash static
158157
ADD_LIBRARY(splash_static STATIC ${LIBRARY_SOURCES})
159158
SET_TARGET_PROPERTIES(splash_static PROPERTIES OUTPUT_NAME splash)
160159
TARGET_LINK_LIBRARIES (splash_static ${SPLASH_LIBS})
161160

162161
# install libs
163-
IF(NOT HDF5_IS_STATIC)
162+
IF(HDF5_HAS_SHARED)
164163
INSTALL(TARGETS splash LIBRARY DESTINATION lib)
165-
ENDIF(NOT HDF5_IS_STATIC)
164+
ENDIF()
166165

167166
INSTALL(TARGETS splash_static ARCHIVE DESTINATION lib)
168167

@@ -220,7 +219,11 @@ OPTION(WITH_TOOLS "enable splashtools" ON)
220219
IF(WITH_TOOLS)
221220
MESSAGE(STATUS "Building splashtools")
222221

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()
224227
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
225228

226229
# MPI for tools

0 commit comments

Comments
 (0)