mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
Split static targets into separate optional target [UPDATED] (#6216)
Build-tree exports can't diverge from install-tree exports — the export(EXPORT ...) reads directly from the install export sets. No manual list to keep in sync. Removed 3 global variables (HDF5_STATIC_LIBRARIES_TO_EXPORT, HDF5_JAVA_LIBRARIES_TO_EXPORT, HDF5_UTILS_TO_EXPORT) and their ~21 set_global_variable calls across tool/utility files. Fixed the static-only build bug in the PR where the base export set was guarded by BUILD_SHARED_LIBS, breaking tools export. Removed redundant utils in export files — the PR was dumping tools into all three build-tree export files (java, static, shared). Now they correctly appear only in the base export.
This commit is contained in:
+27
-8
@@ -52,6 +52,24 @@ endif ()
|
||||
#-----------------------------------------------------------------------------
|
||||
if (NOT HDF5_EXTERNALLY_CONFIGURED)
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (HDF5_ENABLE_JNI)
|
||||
install (
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}_java
|
||||
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
|
||||
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}_java-targets.cmake
|
||||
NAMESPACE ${HDF_PACKAGE_NAMESPACE}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS)
|
||||
install (
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}_static
|
||||
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
|
||||
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}_static-targets.cmake
|
||||
NAMESPACE ${HDF_PACKAGE_NAMESPACE}
|
||||
COMPONENT configinstall
|
||||
)
|
||||
endif ()
|
||||
install (
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}
|
||||
DESTINATION ${HDF5_INSTALL_CMAKE_DIR}
|
||||
@@ -61,16 +79,17 @@ if (NOT HDF5_EXTERNALLY_CONFIGURED)
|
||||
)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Export all exported targets to the build tree for use by parent project
|
||||
#-----------------------------------------------------------------------------
|
||||
export (
|
||||
TARGETS ${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES} ${HDF5_UTILS_TO_EXPORT}
|
||||
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
|
||||
NAMESPACE ${HDF_PACKAGE_NAMESPACE}
|
||||
)
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Export all exported targets to the build tree for use by parent project
|
||||
#-----------------------------------------------------------------------------
|
||||
export (
|
||||
TARGETS ${HDF5_LIBRARIES_TO_EXPORT} ${HDF5_LIB_DEPENDENCIES} ${HDF5_UTILS_TO_EXPORT}
|
||||
FILE ${HDF5_PACKAGE}${HDF_PACKAGE_EXT}-targets.cmake
|
||||
NAMESPACE ${HDF_PACKAGE_NAMESPACE}
|
||||
)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Set includes needed for build
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
+31
-14
@@ -96,7 +96,7 @@ if (BUILD_STATIC_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIB_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_CPP_LIB_TARGET} ${HDF5_CPP_LIB_NAME} STATIC 0)
|
||||
set_target_properties (${HDF5_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/cpp)
|
||||
set (install_targets ${HDF5_CPP_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_CPP_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -122,7 +122,7 @@ if (BUILD_SHARED_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_CPP_LIBSH_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_CPP_LIBSH_TARGET} ${HDF5_CPP_LIB_NAME} SHARED "CXX")
|
||||
set_target_properties (${HDF5_CPP_LIBSH_TARGET} PROPERTIES FOLDER libraries/cpp)
|
||||
set (install_targets ${install_targets} ${HDF5_CPP_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_CPP_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -154,22 +154,39 @@ install (
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} cpplibraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_shared}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT cpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT cpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} cpplibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT cpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT cpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_static}
|
||||
EXPORT
|
||||
${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT cpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT cpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT cpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -181,15 +181,31 @@ set (${HDF5_PACKAGE_NAME}_VERSION_MINOR @HDF5_VERSION_MINOR@)
|
||||
if (NOT TARGET "@HDF5_PACKAGE@")
|
||||
if (${HDF5_PACKAGE_NAME}_PROVIDES_ZLIB_SUPPORT)
|
||||
if (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND @ZLIB_USE_EXTERNAL@)
|
||||
include (@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake)
|
||||
include ("@PACKAGE_SHARE_INSTALL_DIR@/@ZLIB_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake")
|
||||
endif ()
|
||||
endif ()
|
||||
if (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_SUPPORT)
|
||||
if (${HDF5_PACKAGE_NAME}_PACKAGE_EXTLIBS AND @SZIP_USE_EXTERNAL@)
|
||||
include (@PACKAGE_SHARE_INSTALL_DIR@/@LIBAEC_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake)
|
||||
include ("@PACKAGE_SHARE_INSTALL_DIR@/@LIBAEC_PACKAGE_NAME@@HDF_PACKAGE_EXT@-targets.cmake")
|
||||
endif ()
|
||||
endif ()
|
||||
include (@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake)
|
||||
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@-targets.cmake")
|
||||
# OPTIONAL: some packages ship HDF5 in such a way that the static and
|
||||
# Java targets files may not be available.
|
||||
if (${HDF5_PACKAGE_NAME}_PROVIDES_STATIC_LIBS AND ${HDF5_PACKAGE_NAME}_PROVIDES_SHARED_LIBS)
|
||||
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@_static-targets.cmake" OPTIONAL RESULT_VARIABLE _hdf5_static_loaded)
|
||||
if (NOT _hdf5_static_loaded)
|
||||
set (${CMAKE_FIND_PACKAGE_NAME}_static_FOUND FALSE)
|
||||
endif ()
|
||||
unset (_hdf5_static_loaded)
|
||||
endif ()
|
||||
if (${HDF5_PACKAGE_NAME}_PROVIDES_JAVA)
|
||||
include ("@PACKAGE_SHARE_INSTALL_DIR@/@HDF5_PACKAGE@@HDF_PACKAGE_EXT@_java-targets.cmake" OPTIONAL RESULT_VARIABLE _hdf5_java_loaded)
|
||||
if (NOT _hdf5_java_loaded)
|
||||
set (${CMAKE_FIND_PACKAGE_NAME}_Java_FOUND FALSE)
|
||||
endif ()
|
||||
unset (_hdf5_java_loaded)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# Handle default component(static) :
|
||||
|
||||
+30
-15
@@ -273,7 +273,7 @@ if (BUILD_STATIC_LIBS)
|
||||
LINKER_LANGUAGE C
|
||||
)
|
||||
add_dependencies (${HDF5_F90_C_LIB_TARGET} H5gen_i)
|
||||
set (install_targets ${HDF5_F90_C_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_F90_C_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -293,7 +293,7 @@ if (BUILD_SHARED_LIBS)
|
||||
LINKER_LANGUAGE C
|
||||
)
|
||||
add_dependencies (${HDF5_F90_C_LIBSH_TARGET} H5gen_iSH)
|
||||
set (install_targets ${install_targets} ${HDF5_F90_C_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_F90_C_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -466,9 +466,9 @@ if (BUILD_STATIC_LIBS)
|
||||
LINKER_LANGUAGE Fortran
|
||||
Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
|
||||
)
|
||||
H5_SET_LIB_OPTIONS (${HDF5_F90_LIB_TARGET} ${HDF5_F90_LIB_NAME} STATIC 0)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_LIB_TARGET}")
|
||||
set (install_targets ${install_targets} ${HDF5_F90_LIB_TARGET})
|
||||
H5_SET_LIB_OPTIONS (${HDF5_F90_LIB_TARGET} ${HDF5_F90_LIB_NAME} STATIC 0)
|
||||
set (install_targets_static ${install_targets_static} ${HDF5_F90_LIB_TARGET})
|
||||
add_dependencies (${HDF5_F90_LIB_TARGET} H5gen)
|
||||
endif ()
|
||||
|
||||
@@ -504,7 +504,7 @@ if (BUILD_SHARED_LIBS)
|
||||
)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_F90_LIBSH_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_F90_LIBSH_TARGET} ${HDF5_F90_LIB_NAME} SHARED "F")
|
||||
set (install_targets ${install_targets} ${HDF5_F90_LIBSH_TARGET})
|
||||
set (install_targets_shared ${install_targets_shared} ${HDF5_F90_LIBSH_TARGET})
|
||||
add_dependencies(${HDF5_F90_LIBSH_TARGET} H5genSH)
|
||||
endif ()
|
||||
|
||||
@@ -605,21 +605,36 @@ if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_F90_C_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
|
||||
#INSTALL_TARGET_PDB (${HDF5_F90_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} fortlibraries)
|
||||
|
||||
install (
|
||||
TARGETS ${install_targets_shared}
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT fortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT fortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries)
|
||||
#INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS ${install_targets}
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT fortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT fortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS ${install_targets_static}
|
||||
EXPORT ${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT fortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT fortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT fortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
+31
-14
@@ -25,7 +25,7 @@ if (BUILD_STATIC_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIB_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_CPP_LIB_NAME} STATIC 0)
|
||||
set_target_properties (${HDF5_HL_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/hl)
|
||||
set (install_targets ${HDF5_HL_CPP_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_HL_CPP_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -41,7 +41,7 @@ if (BUILD_SHARED_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIBSH_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_HL_CPP_LIB_NAME} SHARED "HL_CXX")
|
||||
set_target_properties (${HDF5_HL_CPP_LIBSH_TARGET} PROPERTIES FOLDER libraries/hl)
|
||||
set (install_targets ${install_targets} ${HDF5_HL_CPP_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_HL_CPP_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -73,22 +73,39 @@ install (
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_shared}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlcpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlcpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlcpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlcpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_static}
|
||||
EXPORT
|
||||
${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlcpplibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlcpplibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlcpplibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -79,7 +79,7 @@ if (BUILD_STATIC_LIBS)
|
||||
FOLDER libraries/hl/fortran
|
||||
LINKER_LANGUAGE C
|
||||
)
|
||||
set (install_targets ${HDF5_HL_F90_C_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_HL_F90_C_LIB_TARGET})
|
||||
endif ()
|
||||
if (BUILD_SHARED_LIBS)
|
||||
add_library (${HDF5_HL_F90_C_LIBSH_TARGET} SHARED ${HDF5_HL_F90_C_SOURCES} ${HDF5_HL_F90_HEADERS})
|
||||
@@ -97,7 +97,7 @@ if (BUILD_SHARED_LIBS)
|
||||
FOLDER libraries/hl/fortran
|
||||
LINKER_LANGUAGE C
|
||||
)
|
||||
set (install_targets ${install_targets} ${HDF5_HL_F90_C_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_HL_F90_C_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -232,9 +232,9 @@ if (BUILD_STATIC_LIBS)
|
||||
LINKER_LANGUAGE Fortran
|
||||
Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/static
|
||||
)
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} STATIC 0)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIB_TARGET}")
|
||||
set (install_targets ${install_targets} ${HDF5_HL_F90_LIB_TARGET})
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIB_TARGET} ${HDF5_HL_F90_LIB_NAME} STATIC 0)
|
||||
set (install_targets_static ${install_targets_static} ${HDF5_HL_F90_LIB_TARGET})
|
||||
add_dependencies(${HDF5_HL_F90_LIB_TARGET} H5HLgen)
|
||||
endif ()
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -271,9 +271,9 @@ if (BUILD_SHARED_LIBS)
|
||||
LINKER_LANGUAGE Fortran
|
||||
Fortran_MODULE_DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/shared
|
||||
)
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_HL_F90_LIB_NAME} SHARED "HL_F")
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_F90_LIBSH_TARGET}")
|
||||
set (install_targets ${install_targets} ${HDF5_HL_F90_LIBSH_TARGET})
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_HL_F90_LIB_NAME} SHARED "HL_F")
|
||||
set (install_targets_shared ${install_targets_shared} ${HDF5_HL_F90_LIBSH_TARGET})
|
||||
add_dependencies(${HDF5_HL_F90_LIBSH_TARGET} H5HLgenSH)
|
||||
endif ()
|
||||
|
||||
@@ -333,21 +333,36 @@ if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
|
||||
#INSTALL_TARGET_PDB (${HDF5_HL_F90_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlfortlibraries)
|
||||
|
||||
install (
|
||||
TARGETS ${install_targets_shared}
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlfortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlfortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries)
|
||||
#INSTALL_TARGET_PDB (${HDF5_HL_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlfortlibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS ${install_targets}
|
||||
EXPORT ${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlfortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlfortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS ${install_targets_static}
|
||||
EXPORT ${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hlfortlibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hlfortlibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hlfortlibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
+33
-16
@@ -55,10 +55,10 @@ if (BUILD_STATIC_LIBS)
|
||||
target_compile_options(${HDF5_HL_LIB_TARGET} PRIVATE "${HDF5_CMAKE_C_FLAGS}")
|
||||
TARGET_C_PROPERTIES (${HDF5_HL_LIB_TARGET} STATIC)
|
||||
target_link_libraries (${HDF5_HL_LIB_TARGET} PUBLIC ${HDF5_LIB_TARGET})
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIB_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_LIB_TARGET} ${HDF5_HL_LIB_NAME} STATIC 0)
|
||||
set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES FOLDER libraries/hl)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIB_TARGET}")
|
||||
set (install_targets ${HDF5_HL_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_HL_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -71,10 +71,10 @@ if (BUILD_SHARED_LIBS)
|
||||
target_compile_definitions(${HDF5_HL_LIBSH_TARGET} PUBLIC "H5_BUILT_AS_DYNAMIC_LIB")
|
||||
TARGET_C_PROPERTIES (${HDF5_HL_LIBSH_TARGET} SHARED)
|
||||
target_link_libraries (${HDF5_HL_LIBSH_TARGET} PUBLIC ${HDF5_LIBSH_TARGET})
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIBSH_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_HL_LIBSH_TARGET} ${HDF5_HL_LIB_NAME} SHARED "HL")
|
||||
set_target_properties (${HDF5_HL_LIBSH_TARGET} PROPERTIES FOLDER libraries/hl)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIBSH_TARGET}")
|
||||
set (install_targets ${install_targets} ${HDF5_HL_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_HL_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -106,22 +106,39 @@ install (
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hllibraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_shared}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hllibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hllibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_HL_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hllibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hllibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hllibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_static}
|
||||
EXPORT
|
||||
${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT hllibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT hllibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT hllibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
@@ -110,7 +110,7 @@ if (HDF5_EXPORTED_TARGETS)
|
||||
TARGETS
|
||||
${HDF5_JAVA_JNI_LIB_TARGET}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
${HDF5_EXPORTED_TARGETS}_java
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT libraries
|
||||
|
||||
@@ -59,6 +59,10 @@ We would like to thank the many HDF5 community members who contributed to this r
|
||||
|
||||
A new `Findlibaec.cmake` CMake module has been added. This module is intended to locate libaec on the system for SZIP support in HDF5 when libaec was built with Autotools instead of CMake. When SZIP support is enabled in HDF5 with the `HDF5_ENABLE_SZIP_SUPPORT` option, this module will first check for an existing CMake-built libaec and use that if it's available. Otherwise, the module will heuristically search for libaec on the system. If necessary, the module can be hinted toward a particular libaec installation by setting the CMake variable `libaec_ROOT` to point to a directory. If it is known that a CMake-built libaec installation exists on the system in a non-standard location, the CMake variable `libaec_DIR` can instead be set to a directory containing a `libaec-config.cmake` file to cause the module to prefer that libaec installation.
|
||||
|
||||
### Refactored CMake library export mechanism
|
||||
|
||||
The CMake build system now uses separate export targets for different library types: static libraries use `${HDF5_EXPORTED_TARGETS}_static`, Java libraries use `${HDF5_EXPORTED_TARGETS}_java`, and shared libraries continue using the main `${HDF5_EXPORTED_TARGETS}`. The generated `hdf5-config.cmake` file conditionally includes the appropriate target files (`hdf5-targets_static.cmake` and `hdf5-targets_java.cmake`), allowing downstream projects to selectively link against specific library variants. This refactoring improves build system maintainability and applies consistently across all HDF5 components (core, C++, Fortran, high-level APIs, tools, and Java JNI).
|
||||
|
||||
## Library
|
||||
|
||||
## Parallel Library
|
||||
|
||||
+31
-14
@@ -1267,7 +1267,7 @@ if (BUILD_STATIC_LIBS)
|
||||
H5_SET_LIB_OPTIONS (${HDF5_LIB_TARGET} ${HDF5_LIB_NAME} STATIC 0)
|
||||
set_target_properties (${HDF5_LIB_TARGET} PROPERTIES FOLDER libraries)
|
||||
|
||||
set (install_targets ${HDF5_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -1296,7 +1296,7 @@ if (BUILD_SHARED_LIBS)
|
||||
H5_SET_LIB_OPTIONS (${HDF5_LIBSH_TARGET} ${HDF5_LIB_NAME} SHARED "LIB")
|
||||
set_target_properties (${HDF5_LIBSH_TARGET} PROPERTIES FOLDER libraries)
|
||||
|
||||
set (install_targets ${install_targets} ${HDF5_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -1332,22 +1332,39 @@ endif ()
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} libraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_shared}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT libraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT libraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} libraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT libraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT libraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_static}
|
||||
EXPORT
|
||||
${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT libraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT libraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT libraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
+31
-14
@@ -59,7 +59,7 @@ if (BUILD_STATIC_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIB_TARGET} ${HDF5_TOOLS_LIB_NAME} STATIC 0)
|
||||
set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES FOLDER libraries/tools)
|
||||
set (install_targets ${HDF5_TOOLS_LIB_TARGET})
|
||||
set (install_targets_static ${HDF5_TOOLS_LIB_TARGET})
|
||||
endif ()
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
@@ -85,7 +85,7 @@ if (BUILD_SHARED_LIBS)
|
||||
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIBSH_TARGET}")
|
||||
H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TOOLS_LIB_NAME} SHARED "TOOLS")
|
||||
set_target_properties (${HDF5_TOOLS_LIBSH_TARGET} PROPERTIES FOLDER libraries/tools)
|
||||
set (install_targets ${install_targets} ${HDF5_TOOLS_LIBSH_TARGET})
|
||||
set (install_targets_shared ${HDF5_TOOLS_LIBSH_TARGET})
|
||||
endif ()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -111,20 +111,37 @@ endif ()
|
||||
if (HDF5_EXPORTED_TARGETS)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} toolslibraries)
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_shared}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolslibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT toolslibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
if (BUILD_STATIC_LIBS)
|
||||
INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} toolslibraries)
|
||||
endif ()
|
||||
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets}
|
||||
EXPORT
|
||||
${HDF5_EXPORTED_TARGETS}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolslibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT toolslibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS}_static)
|
||||
else ()
|
||||
set (_static_export ${HDF5_EXPORTED_TARGETS})
|
||||
endif ()
|
||||
install (
|
||||
TARGETS
|
||||
${install_targets_static}
|
||||
EXPORT
|
||||
${_static_export}
|
||||
LIBRARY DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
ARCHIVE DESTINATION ${HDF5_INSTALL_LIB_DIR} COMPONENT toolslibraries
|
||||
RUNTIME DESTINATION ${HDF5_INSTALL_BIN_DIR} COMPONENT toolslibraries
|
||||
FRAMEWORK DESTINATION ${HDF5_INSTALL_FWRK_DIR} COMPONENT toolslibraries
|
||||
INCLUDES DESTINATION include
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
Reference in New Issue
Block a user