#-------------------------------------------------------------------------------
macro (EXTERNAL_HDF4_LIBRARY compress_type libtype)
set (HDF4_BUILD_XDR_LIB OFF)
if (WIN32)
set (HDF4_BUILD_XDR_LIB ON)
endif ()
if (${compress_type} MATCHES "SVN")
EXTERNALPROJECT_ADD (HDF4
SVN_REPOSITORY ${HDF4_URL}
# [SVN_REVISION rev]
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DHDF4_BUILD_TOOLS:BOOL=OFF
-DHDF4_BUILD_FORTRAN:BOOL=OFF
-DHDF4_BUILD_EXAMPLES:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF4_BUILD_XDR_LIB:BOOL=${HDF45_BUILD_XDR_LIB}
-DHDF4_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF4_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF4_ALLOW_EXTERNAL_SUPPORT:STRING="SVN"
-DJPEG_SVN_URL:STRING=${JPEG_SVN_URL}
-DZLIB_SVN_URL:STRING=${ZLIB_SVN_URL}
-DSZIP_SVN_URL:STRING=${SZIP_SVN_URL}
-DHDF4_ENABLE_JPEG_LIB_SUPPORT:BOOL=${HDF_ENABLE_JPEG_LIB_SUPPORT}
-DHDF4_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF4_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF4_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
elseif (${compress_type} MATCHES "GIT")
EXTERNALPROJECT_ADD (HDF4
GIT_REPOSITORY ${HDF4_URL}
GIT_TAG ${HDF4_BRANCH}
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DHDF4_BUILD_TOOLS:BOOL=OFF
-DHDF4_BUILD_FORTRAN:BOOL=OFF
-DHDF4_BUILD_EXAMPLES:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF4_BUILD_XDR_LIB:BOOL=${HDF45_BUILD_XDR_LIB}
-DHDF4_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF4_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF4_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
-DJPEG_GIT_URL:STRING=${JPEG_GIT_URL}
-DJPEG_GIT_BRANCH:STRING=${JPEG_GIT_BRANCH}
-DZLIB_GIT_URL:STRING=${ZLIB_GIT_URL}
-DZLIB_GIT_BRANCH:STRING=${ZLIB_GIT_BRANCH}
-DSZIP_GIT_URL:STRING=${SZIP_GIT_URL}
-DSZIP_GIT_BRANCH:STRING=${SZIP_GIT_BRANCH}
-DHDF4_ENABLE_JPEG_LIB_SUPPORT:BOOL=${HDF_ENABLE_JPEG_LIB_SUPPORT}
-DHDF4_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF4_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF4_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
endif ()
if (${compress_type} MATCHES "TGZ")
EXTERNALPROJECT_ADD (HDF4
URL ${HDF4_URL}
URL_MD5 ""
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DHDF4_BUILD_TOOLS:BOOL=OFF
-DHDF4_BUILD_FORTRAN:BOOL=OFF
-DHDF4_BUILD_EXAMPLES:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF4_BUILD_XDR_LIB:BOOL=${HDF45_BUILD_XDR_LIB}
-DHDF4_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF4_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF4_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
-DTGZPATH:STRING=${TGZPATH}
-DJPEG_TGZ_NAME:STRING=${JPEG_TGZ_NAME}
-DZLIB_TGZ_NAME:STRING=${ZLIB_TGZ_NAME}
-DSZIP_TGZ_NAME:STRING=${SZIP_TGZ_NAME}
-DHDF4_ENABLE_JPEG_LIB_SUPPORT:BOOL=${HDF_ENABLE_JPEG_LIB_SUPPORT}
-DHDF4_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF4_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF4_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
endif ()
externalproject_get_property (HDF4 BINARY_DIR SOURCE_DIR)
##include (${BINARY_DIR}/${HDF4_PACKAGE_NAME}${HDF_PACKAGE_EXT}-targets.cmake)
# Create imported target hdf4-static
add_library (hdf-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (hdf-static "hdf" STATIC "")
add_library (mfhdf-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (mfhdf-static "mfhdf" STATIC "")
add_dependencies (HDF4 hdf-static mfhdf-static)
set (HDF4_STATIC_LIBRARY "hdf-static;mfhdf-static")
set (MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES "hdf-static")
if (HDF45_BUILD_XDR_LIB)
add_library (xdr-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (xdr-static "xdr" STATIC "")
add_dependencies (HDF4 xdr-static)
set (HDF4_STATIC_LIBRARY "${HDF4_STATIC_LIBRARY};xdr-static")
set (MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES "xdr-static;${MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES}")
endif ()
set (HDF4_LIBRARIES ${HDF4_STATIC_LIBRARY})
if (BUILD_SHARED_LIBS)
add_library (hdf-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (hdf-shared "hdf" SHARED "")
add_library (mfhdf-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (mfhdf-shared "mfhdf" SHARED} "")
add_dependencies (HDF4 hdf-shared mfhdf-shared)
set (HDF4_SHARED_LIBRARY "hdf-shared;mfhdf-shared")
set (MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES "hdf-shared")
if (HDF45_BUILD_XDR_LIB)
add_library (xdr-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (xdr-shared "xdr" SHARED "")
add_dependencies (HDF4 xdr-shared)
set (HDF4_SHARED_LIBRARY "${HDF4_SHARED_LIBRARY};xdr-shared")
set (MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES "xdr-shared;${MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES}")
endif ()
endif ()
if (HDF_ENABLE_JPEG_LIB_SUPPORT)
add_library(jpeg-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (jpeg-static "jpeg" STATIC "")
add_dependencies (HDF4 jpeg-static)
set (JPEG_STATIC_LIBRARY "jpeg-static")
set (JPEG_LIBRARIES ${JPEG_STATIC_LIBRARY})
set (HDF4_STATIC_LIBRARY "${HDF4_STATIC_LIBRARY};${JPEG_STATIC_LIBRARY}")
if (BUILD_SHARED_LIBS)
# Create imported target jpeg-shared
add_library(jpeg-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (jpeg-shared "jpeg" SHARED "")
add_dependencies (HDF4 jpeg-shared)
set (JPEG_SHARED_LIBRARY "jpeg-shared")
set (JPEG_LIBRARIES ${JPEG_LIBRARIES} ${JPEG_SHARED_LIBRARY})
set (HDF4_SHARED_LIBRARY "${HDF4_SHARED_LIBRARY};${JPEG_SHARED_LIBRARY}")
endif ()
endif ()
if (HDF_ENABLE_Z_LIB_SUPPORT)
if (NOT ZLIB_LIBRARIES)
if (WIN32)
set (ZLIB_LIB_NAME "zlib")
else ()
set (ZLIB_LIB_NAME "z")
endif ()
add_library(zlib-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (zlib-static ${ZLIB_LIB_NAME} STATIC "")
set (ZLIB_STATIC_LIBRARY "zlib-static")
set (ZLIB_LIBRARIES ${ZLIB_STATIC_LIBRARY})
endif ()
add_dependencies (HDF4 zlib-static)
set (HDF4_STATIC_LIBRARY "${HDF4_STATIC_LIBRARY};${ZLIB_STATIC_LIBRARY}")
if (BUILD_SHARED_LIBS)
if (NOT ZLIB_LIBRARIES)
# Create imported target zlib-shared
add_library(zlib-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (zlib-shared ${ZLIB_LIB_NAME} SHARED "")
set (ZLIB_SHARED_LIBRARY "zlib-shared")
set (ZLIB_LIBRARIES ${ZLIB_LIBRARIES} ${ZLIB_SHARED_LIBRARY})
endif ()
add_dependencies (HDF4 zlib-shared)
set (HDF4_SHARED_LIBRARY "${HDF4_SHARED_LIBRARY};${ZLIB_SHARED_LIBRARY}")
endif ()
set (HDF4_ZLIB "TRUE")
endif ()
if (HDF_ENABLE_SZIP_SUPPORT)
if (NOT SZIP_LIBRARIES)
add_library(szip-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (szip-static "szip" STATIC "")
set (SZIP_STATIC_LIBRARY "szip-static")
set (SZIP_LIBRARIES ${SZIP_STATIC_LIBRARY})
endif ()
set (HDF4_STATIC_LIBRARY "${HDF4_STATIC_LIBRARY};${SZIP_STATIC_LIBRARY}")
add_dependencies (HDF4 szip-static)
if (BUILD_SHARED_LIBS)
if (NOT SZIP_LIBRARIES)
# Create imported target szip-shared
add_library(szip-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (szip-shared "szip" SHARED "")
set (SZIP_SHARED_LIBRARY "szip-shared")
set (SZIP_LIBRARIES ${SZIP_LIBRARIES} ${SZIP_SHARED_LIBRARY})
endif ()
add_dependencies (HDF4 szip-shared)
set (HDF4_SHARED_LIBRARY "${HDF4_SHARED_LIBRARY};${SZIP_SHARED_LIBRARY}")
endif ()
set (HDF4_SZIP "TRUE")
endif ()
if (${libtype} MATCHES "SHARED")
set_target_properties (hdf-shared PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "jpeg-shared;zlib-shared;szip-shared"
)
set_target_properties (mfhdf-shared PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "${MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES}"
)
else ()
set_target_properties (hdf-static PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "jpeg-static;zlib-static;szip-static"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
set_target_properties (mfhdf-static PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "${MFHDF_IMPORTED_LINK_INTERFACE_LIBRARIES}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
if (HDF45_BUILD_XDR_LIB)
set_target_properties (xdr-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
endif ()
if (HDF_ENABLE_JPEG_LIB_SUPPORT)
set_target_properties (jpeg-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
endif ()
if (HDF_ENABLE_Z_LIB_SUPPORT)
set_target_properties (zlib-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
endif ()
if (HDF_ENABLE_SZIP_SUPPORT)
set_target_properties (szip-static PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
endif ()
endif ()
if (HDF_ENABLE_JPEG_LIB_SUPPORT)
set (JPEG_INCLUDE_DIR "${BINARY_DIR}/JPEG-prefix/src/JPEG/src")
set (JPEG_INCLUDE_DIR_GEN "${BINARY_DIR}/JPEG-prefix/src/JPEG-build" PARENT_SCOPE)
set (H425_HAVE_JPEGLIB_H 1)
set (H425_HAVE_LIBJPEG 1)
set (H425_JPEGLIB_HEADER "jpeglib.h")
set (JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIR_GEN} ${JPEG_INCLUDE_DIR})
set (JPEG_FOUND 1 PARENT_SCOPE)
endif ()
if (HDF_ENABLE_Z_LIB_SUPPORT AND HDF4_ZLIB)
set (ZLIB_INCLUDE_DIR "${BINARY_DIR}/ZLIB-prefix/src/ZLIB/src")
set (ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}/ZLIB-prefix/src/ZLIB-build" PARENT_SCOPE)
set (H425_HAVE_FILTER_DEFLATE 1)
set (H425_HAVE_ZLIB_H 1)
set (H425_HAVE_LIBZ 1)
set (H425_ZLIB_HEADER "zlib.h")
set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR_GEN} ${ZLIB_INCLUDE_DIR})
set (ZLIB_FOUND 1 PARENT_SCOPE)
endif ()
if (HDF_ENABLE_SZIP_SUPPORT AND HDF4_SZIP)
set (SZIP_INCLUDE_DIR "${BINARY_DIR}/SZIP-prefix/src/SZIP/src")
set (SZIP_INCLUDE_DIR_GEN "${BINARY_DIR}/SZIP-prefix/src/SZIP-build" PARENT_SCOPE)
set (H425_HAVE_FILTER_SZIP 1)
set (H425_HAVE_SZLIB_H 1)
set (H425_HAVE_LIBSZ 1)
set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR_GEN} ${SZIP_INCLUDE_DIR})
set (SZIP_FOUND 1 PARENT_SCOPE)
endif ()
# file (READ ${BINARY_DIR}/h4config.h _h4config_h_contents)
# string (REGEX REPLACE ".*#define[ \t]+H4_VERSION[ \t]+\"([0-9A-Za-z.]+)\".*" "\\1" HDF4_VERSION_STRING ${_h4config_h_contents})
set (HDF4_LIBRARIES ${HDF4_STATIC_LIBRARY})
if (BUILD_SHARED_LIBS)
set (HDF4_LIBRARIES ${HDF4_LIBRARIES} ${HDF4_SHARED_LIBRARY})
endif ()
message ("HDF4_LIBRARIES is ${HDF4_LIBRARIES}\n")
set (HDF4_INCLUDE_DIR_GEN "${BINARY_DIR}")
set (HDF4_HDF_INCLUDE_DIR "${SOURCE_DIR}/hdf/src")
set (HDF4_MFHDF_INCLUDE_DIR "${SOURCE_DIR}/mfhdf/libsrc")
set (HDF4_INCLUDE_DIR ${HDF4_HDF_INCLUDE_DIR} ${HDF4_MFHDF_INCLUDE_DIR})
set (HDF4_FOUND 1)
set (HDF4_INCLUDE_DIRS ${HDF4_INCLUDE_DIR_GEN} ${HDF4_INCLUDE_DIR})
endmacro ()
#-------------------------------------------------------------------------------
macro (PACKAGE_HDF4_LIBRARY compress_type libtype)
add_custom_target (HDF4-GenHeader-Copy ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF4_INCLUDE_DIR_GEN}/h4config.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
COMMENT "Copying ${HDF4_INCLUDE_DIR_GEN}/h4config.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
)
set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/h4config.h)
if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "GIT" OR ${compress_type} MATCHES "TGZ")
add_dependencies (HDF4-GenHeader-Copy HDF4)
install (
FILES ${HDF4_INCLUDE_DIR_GEN}/libhdf4.settings
DESTINATION ${H4H5_INSTALL_LIB_DIR}
COMPONENT libraries
)
else ()
get_filename_component (HDF4SETTINGS "${HDF4_INCLUDE_DIR}/../lib" ABSOLUTE)
install (
FILES ${HDF4SETTINGS}/libhdf4.settings
DESTINATION ${H4H5_INSTALL_LIB_DIR}
COMPONENT libraries
)
endif ()
endmacro ()
macro (HDF4_SUPPORT link_hdf)
set (CMAKE_MODULE_PATH ${H4H5EX_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
if (NOT H4H5_HDF4_HEADER)
if (NOT HDF4_USE_EXTERNAL)
if (USE_SHARED_LIBS)
set (FIND_HDF_COMPONENTS C shared static)
else ()
set (FIND_HDF_COMPONENTS C static)
endif ()
message (STATUS "HDF4 find comps: ${FIND_HDF_COMPONENTS}")
set (SEARCH_PACKAGE_NAME ${HDF4_PACKAGE_NAME})
find_package (HDF4 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS ${FIND_HDF_COMPONENTS})
message (STATUS "HDF4 C libs:${HDF4_FOUND} static:${HDF4_static_C_FOUND} and shared:${HDF4_shared_C_FOUND}")
endif ()
if (HDF4_FOUND)
if (NOT TARGET hdf4::hdp)
add_executable (hdf4::hdp IMPORTED)
endif()
if (NOT TARGET hdf4::hdiff)
add_executable (hdf4::hdiff IMPORTED)
endif()
if (NOT HDF4_static_C_FOUND AND NOT HDF4_shared_C_FOUND)
set (FIND_HDF_COMPONENTS C)
find_package (HDF4 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS ${FIND_HDF_COMPONENTS})
message (STATUS "HDF4 libs:${HDF4_FOUND} C:${HDF4_C_FOUND}")
set (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${HDF4_LIBRARIES})
if (HDF4_BUILD_SHARED_LIBS)
add_definitions (-DH4_BUILT_AS_DYNAMIC_LIB)
else ()
add_definitions (-DH4_BUILT_AS_STATIC_LIB)
endif ()
if (USE_SHARED_LIBS AND WIN32)
set_property (TARGET hdf4::hdp PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdpdll")
set_property (TARGET hdf4::hdiff PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdiffdll")
else ()
set_property (TARGET hdf4::hdp PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdp")
set_property (TARGET hdf4::hdiff PROPERTY IMPORTED_LOCATION "${HDF4_TOOLS_DIR}/hdiff")
endif ()
set (HDF4_DUMP_EXECUTABLE $)
set (HDF4_DIFF_EXECUTABLE $)
else ()
if (USE_SHARED_LIBS AND HDF4_shared_C_FOUND)
set (HDF4_LINK_SHLIBS ${HDF4_LINK_SHLIBS} ${HDF4_C_SHARED_LIBRARY})
endif ()
if (HDF4_static_C_FOUND)
set (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${HDF4_C_STATIC_LIBRARY})
endif ()
set (HDF4_DUMP_EXECUTABLE $)
set (HDF4_DIFF_EXECUTABLE $)
endif ()
endif ()
if (HDF4_FOUND)
message (STATUS "HDF4-${HDF4_VERSION_STRING} found: INC=${HDF4_INCLUDE_DIR} TOOLS=${HDF4_TOOLS_DIR}")
if (USE_SHARED_LIBS AND NOT HDF4_BUILD_SHARED_LIBS)
message (STATUS "HDF4 build type does match requested type")
endif ()
set (H4H5_HAVE_HDF_H 1)
set (H4H5_HAVE_HDF4 1)
set (H4H5_HDF4_HEADER "hdf.h")
set (HDF4_INCLUDE_DIR_GEN ${HDF4_INCLUDE_DIR})
set (HDF4_INCLUDE_DIRS ${HDF4_INCLUDE_DIR})
else ()
if (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
# May need to build JPEG with PIC on x64 machines with gcc
# Need to use CMAKE_ANSI_CFLAGS define so that compiler test works
if (NOT CMAKE_ANSI_CFLAGS)
set (CMAKE_ANSI_CFLAGS " ")
endif ()
if (BUILD_JPEG_WITH_PIC)
set (CMAKE_ANSI_CFLAGS "${CMAKE_ANSI_CFLAGS} -fPIC")
endif ()
EXTERNAL_HDF4_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
set (H4H5_HAVE_HDF_H 1)
set (H4H5_HAVE_HDF4 1)
set (H4H5_HDF4_HEADER "hdf.h")
message (STATUS "HDF4 is built")
if (USE_SHARED_LIBS)
set (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${HDF4_SHARED_LIBRARY})
add_definitions (-DH4_BUILT_AS_DYNAMIC_LIB)
else ()
set (HDF4_LINK_LIBS ${HDF4_LINK_LIBS} ${HDF4_STATIC_LIBRARY})
add_definitions (-DH4_BUILT_AS_STATIC_LIB)
endif ()
else ()
message (FATAL_ERROR " HDF4 is Required for H4H5Tools")
endif ()
endif ()
else ()
# This project is being called from within another and HDF4 is already configured
set (H4H5_HAVE_HDF_H 1)
set (H4H5_HAVE_HDF4 1)
endif ()
message (STATUS "HDF4 link libs: ${HDF4_LINK_LIBS}")
if (BUILD_SHARED_LIBS)
message (STATUS "HDF4 shared link libs: ${HDF4_LINK_SHLIBS}")
endif ()
if (NOT HDF4_LIBRARY)
set (HDF4_LIBRARY ${HDF4_LIBRARIES})
endif ()
INCLUDE_DIRECTORIES (${HDF4_INCLUDE_DIRS})
set (HDF4_FOUND 1)
set (HDF4_INCLUDE_DIR_GEN ${HDF4_INCLUDE_DIR_GEN})
set (HDF4_VERSION_STRING ${HDF4_VERSION_STRING})
if (WIN32)
set(CMAKE_TEST_LIB_DIRECTORY "${CMAKE_TEST_LIB_DIRECTORY};${HDF4_TOOLS_DIR}")
else ()
set(CMAKE_TEST_LIB_DIRECTORY "${CMAKE_TEST_LIB_DIRECTORY};${HDF4_LIBRARY_PATH}")
endif ()
endmacro ()
#-------------------------------------------------------------------------------
macro (EXTERNAL_HDF5_LIBRARY compress_type libtype)
if (${compress_type} MATCHES "SVN")
EXTERNALPROJECT_ADD (HDF5
SVN_REPOSITORY ${HDF5_URL}
# [SVN_REVISION rev]
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DBUILD_TESTING:BOOL=OFF
-DHDF5_BUILD_TOOLS:BOOL=OFF
-DHDF5_BUILD_EXAMPLES:BOOL=OFF
-DHDF5_BUILD_HL_LIB:BOOL=OFF
-DHDF5_BUILD_CPP_LIB:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF5_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF5_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="SVN"
-DZLIB_SVN_URL:STRING=${ZLIB_SVN_URL}
-DSZIP_SVN_URL:STRING=${SZIP_SVN_URL}
-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF5_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
endif ()
if (${compress_type} MATCHES "GIT")
EXTERNALPROJECT_ADD (HDF5
GIT_REPOSITORY ${HDF5_URL}
GIT_TAG ${HDF5_BRANCH}
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DBUILD_TESTING:BOOL=OFF
-DHDF5_BUILD_TOOLS:BOOL=OFF
-DHDF5_BUILD_EXAMPLES:BOOL=OFF
-DHDF5_BUILD_HL_LIB:BOOL=OFF
-DHDF5_BUILD_CPP_LIB:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF5_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF5_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT"
-DZLIB_GIT_URL:STRING=${ZLIB_GIT_URL}
-DZLIB_GIT_BRANCH:STRING=${ZLIB_GIT_BRANCH}
-DSZIP_GIT_URL:STRING=${SZIP_GIT_URL}
-DSZIP_GIT_BRANCH:STRING=${SZIP_GIT_BRANCH}
-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF5_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
endif ()
if (${compress_type} MATCHES "TGZ")
EXTERNALPROJECT_ADD (HDF5
URL ${HDF5_URL}
URL_MD5 ""
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
-DHDF_PACKAGE_EXT:STRING=${HDF_PACKAGE_EXT}
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DBUILD_TESTING:BOOL=OFF
-DHDF5_BUILD_TOOLS:BOOL=OFF
-DHDF5_BUILD_EXAMPLES:BOOL=OFF
-DHDF5_BUILD_HL_LIB:BOOL=OFF
-DHDF5_BUILD_CPP_LIB:BOOL=OFF
-DBUILD_TESTING:BOOL=OFF
-DHDF5_EXTERNALLY_CONFIGURED:BOOL=OFF
-DHDF5_PACKAGE_EXTLIBS:BOOL=${HDF_PACKAGE_EXTLIBS}
-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="TGZ"
-DTGZPATH:STRING=${TGZPATH}
-DZLIB_TGZ_NAME:STRING=${ZLIB_TGZ_NAME}
-DSZIP_TGZ_NAME:STRING=${SZIP_TGZ_NAME}
-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=${HDF_ENABLE_Z_LIB_SUPPORT}
-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=${HDF_ENABLE_SZIP_SUPPORT}
-DHDF5_ENABLE_SZIP_ENCODING:BOOL=${HDF_ENABLE_SZIP_ENCODING}
)
endif ()
externalproject_get_property (HDF5 BINARY_DIR SOURCE_DIR)
# Create imported target hdf5
add_library (hdf5-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (hdf5-static "hdf5" STATIC "")
add_dependencies (HDF5 hdf5-static)
set (HDF5_STATIC_LIBRARY "hdf5-static")
if (BUILD_SHARED_LIBS)
add_library (hdf5-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (hdf5-shared "hdf5" SHARED "")
add_dependencies (HDF5 hdf5-shared)
set (HDF5_SHARED_LIBRARY "hdf5-shared")
endif ()
if (HDF_ENABLE_Z_LIB_SUPPORT)
if (NOT ZLIB_LIBRARIES)
add_library (zlib-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (zlib-static "zlib" STATIC "")
set (ZLIB_STATIC_LIBRARY "zlib-static")
set (ZLIB_LIBRARIES ${ZLIB_STATIC_LIBRARY})
endif ()
add_dependencies (HDF5 zlib-static)
set (HDF5_STATIC_LIBRARY "${HDF5_STATIC_LIBRARY};${ZLIB_STATIC_LIBRARY}")
if (BUILD_SHARED_LIBS)
if (NOT ZLIB_LIBRARIES)
add_library (zlib-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (zlib-shared "zlib" SHARED "")
set (ZLIB_SHARED_LIBRARY "zlib-shared")
set (ZLIB_LIBRARIES ${ZLIB_LIBRARIES} ${ZLIB_SHARED_LIBRARY})
endif ()
add_dependencies (HDF5 zlib-shared)
set (HDF5_SHARED_LIBRARY "${HDF5_SHARED_LIBRARY};${ZLIB_SHARED_LIBRARY}")
endif ()
set (HDF5_ZLIB "TRUE")
endif ()
if (HDF_ENABLE_SZIP_SUPPORT)
if (NOT SZIP_LIBRARIES)
add_library (szip-static STATIC IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (szip-static "szip" STATIC "")
set (SZIP_STATIC_LIBRARY "szip-static")
set (SZIP_LIBRARIES ${SZIP_STATIC_LIBRARY})
endif ()
add_dependencies (HDF5 szip-static)
set (HDF5_STATIC_LIBRARY "${HDF5_STATIC_LIBRARY};${SZIP_STATIC_LIBRARY}")
if (BUILD_SHARED_LIBS)
if (NOT SZIP_LIBRARIES)
add_library (szip-shared SHARED IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (szip-shared "szip" SHARED "")
set (SZIP_SHARED_LIBRARY "szip-shared")
set (SZIP_LIBRARIES ${SZIP_LIBRARIES} ${SZIP_SHARED_LIBRARY})
endif ()
add_dependencies (HDF5 szip-shared)
set (HDF5_SHARED_LIBRARY "${HDF5_SHARED_LIBRARY};${SZIP_SHARED_LIBRARY}")
endif ()
set (HDF5_SZIP "TRUE")
endif ()
if (${libtype} MATCHES "SHARED")
if (WIN32)
set_target_properties (hdf5-shared PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "zlib-shared;szip-shared"
)
else ()
set_target_properties (hdf5-shared PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "dl;zlib-shared;szip-shared"
)
endif ()
else ()
set_target_properties (hdf5-static PROPERTIES
IMPORTED_LINK_INTERFACE_LIBRARIES "zlib-static;szip-static"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
)
endif ()
if (HDF_ENABLE_Z_LIB_SUPPORT AND HDF5_ZLIB)
set (ZLIB_INCLUDE_DIR "${BINARY_DIR}/ZLIB-prefix/src/ZLIB/src")
set (ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}/ZLIB-prefix/src/ZLIB-build")
set (H425_HAVE_FILTER_DEFLATE 1)
set (H425_HAVE_ZLIB_H 1)
set (H425_HAVE_LIBZ 1)
set (H425_ZLIB_HEADER "zlib.h")
set (ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR_GEN} ${ZLIB_INCLUDE_DIR})
endif ()
if (HDF_ENABLE_SZIP_SUPPORT AND HDF5_SZIP)
set (SZIP_INCLUDE_DIR "${BINARY_DIR}/SZIP-prefix/src/SZIP/src")
set (SZIP_INCLUDE_DIR_GEN "${BINARY_DIR}/SZIP-prefix/src/SZIP-build")
set (H425_HAVE_FILTER_SZIP 1)
set (H425_HAVE_SZLIB_H 1)
set (H425_HAVE_LIBSZ 1)
set (SZIP_INCLUDE_DIRS ${SZIP_INCLUDE_DIR_GEN} ${SZIP_INCLUDE_DIR})
endif ()
# file (READ ${BINARY_DIR}/H5pubconf.h _h5pubconf_h_contents)
# string (REGEX REPLACE ".*#define[ \t]+H5_VERSION[ \t]+\"([0-9A-Za-z.]+)\".*" "\\1" HDF5_VERSION_STRING ${_h5pubconf_h_contents})
set (HDF5_INCLUDE_DIR_GEN "${BINARY_DIR}")
set (HDF5_INCLUDE_DIR "${SOURCE_DIR}/src")
set (HDF5_FOUND 1)
set (HDF5_LIBRARIES ${HDF5_STATIC_LIBRARY})
if (BUILD_SHARED_LIBS)
set (HDF5_LIBRARIES ${HDF5_LIBRARIES} ${HDF5_SHARED_LIBRARY})
endif ()
message ("HDF5_LIBRARIES is ${HDF5_LIBRARIES}\n")
set (HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR_GEN} ${HDF5_INCLUDE_DIR})
endmacro ()
#-------------------------------------------------------------------------------
macro (PACKAGE_HDF5_LIBRARY compress_type libtype)
add_custom_target (HDF5-GenHeader-Copy ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${HDF5_INCLUDE_DIR_GEN}/H5pubconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
COMMENT "Copying ${HDF5_INCLUDE_DIR_GEN}/H5pubconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
)
set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/H5pubconf.h)
if (${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "GIT" OR ${compress_type} MATCHES "TGZ")
add_dependencies (HDF5-GenHeader-Copy HDF5)
install (
FILES ${HDF5_INCLUDE_DIR_GEN}/libhdf5.settings
DESTINATION ${H4H5_INSTALL_LIB_DIR}
COMPONENT libraries
)
else ()
get_filename_component (HDF5SETTINGS "${HDF5_INCLUDE_DIR}/../lib" ABSOLUTE)
install (
FILES ${HDF5SETTINGS}/libhdf5.settings
DESTINATION ${H4H5_INSTALL_LIB_DIR}
COMPONENT libraries
)
endif ()
endmacro ()
macro (HDF5_SUPPORT link_hdf)
set (CMAKE_MODULE_PATH ${H4H5EX_RESOURCES_DIR} ${CMAKE_MODULE_PATH})
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
if (NOT H4H5_HDF5_HEADER)
if (NOT HDF5_USE_EXTERNAL)
if (USE_SHARED_LIBS)
set (FIND_HDF_COMPONENTS C HL shared static)
else ()
set (FIND_HDF_COMPONENTS C HL static)
endif ()
message (STATUS "HDF5 find comps: ${FIND_HDF_COMPONENTS}")
set (SEARCH_PACKAGE_NAME ${HDF5_PACKAGE_NAME})
find_package (HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS ${FIND_HDF_COMPONENTS})
message (STATUS "HDF5 C libs:${HDF5_FOUND} static:${HDF5_static_C_FOUND} and shared:${HDF5_shared_C_FOUND}")
if (HDF5_FOUND)
if (NOT TARGET hdf5::h5dump)
add_executable (hdf5::h5dump IMPORTED)
endif()
if (NOT TARGET hdf5::h5diff)
add_executable (hdf5::h5diff IMPORTED)
endif()
set (HDF5_DUMP_EXECUTABLE $)
set (HDF5_DIFF_EXECUTABLE $)
if (NOT HDF5_static_C_FOUND AND NOT HDF5_shared_C_FOUND)
#find library from non-dual-binary package
set (FIND_HDF_COMPONENTS C HL)
find_package (HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS ${FIND_HDF_COMPONENTS})
message (STATUS "HDF5 libs:${HDF5_FOUND} C:${HDF5_C_FOUND}")
set (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_LIBRARIES})
if (HDF5_BUILD_SHARED_LIBS)
add_definitions (-DH5_BUILT_AS_DYNAMIC_LIB)
else ()
add_definitions (-DH5_BUILT_AS_STATIC_LIB)
endif ()
if (USE_SHARED_LIBS AND WIN32)
set_property (TARGET hdf5::h5dump PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dumpdll")
set_property (TARGET hdf5::h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diffdll")
else ()
set_property (TARGET hdf5::h5dump PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump")
set_property (TARGET hdf5::h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diff")
endif ()
set (HDF5_DUMP_EXECUTABLE $)
set (HDF5_DIFF_EXECUTABLE $)
else ()
if (USE_SHARED_LIBS)
if(HDF5_shared_C_FOUND)
set (HDF5_LINK_SHLIBS ${HDF5_LINK_SHLIBS} ${HDF5_C_SHARED_LIBRARY})
set (HDF5_LIBRARY_PATH ${PACKAGE_PREFIX_DIR}/lib)
endif ()
if (HDF5_shared_HL_FOUND)
set (HDF5_LINK_SHLIBS ${HDF5_LINK_SHLIBS} ${HDF5_HL_SHARED_LIBRARY})
endif ()
set_property (TARGET hdf5::h5dump-shared PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump-shared")
set_property (TARGET hdf5::h5diff-shared PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diff-shared")
endif ()
if (HDF5_static_C_FOUND)
set (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_C_STATIC_LIBRARY} ${HDF5_HL_STATIC_LIBRARY})
set_property (TARGET hdf5::h5dump PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump")
set_property (TARGET hdf5::h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diff")
endif ()
endif ()
else ()
find_package (HDF5) # Legacy find
#Legacy find_package does not set HDF5_BUILD_SHARED_LIBS, so we set it here
if (USE_SHARED_LIBS AND EXISTS "${HDF5_LIBRARY_DIRS}/libhdf5.so")
set (HDF5_BUILD_SHARED_LIBS 1)
else ()
set (HDF5_BUILD_SHARED_LIBS 0)
endif ()
set (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_LIBRARIES})
set (LINK_LIBS ${LINK_LIBS} ${HDF5_LIBRARIES})
add_executable (hdf5::h5dump IMPORTED)
add_executable (hdf5::h5diff IMPORTED)
set_property (TARGET hdf5::h5dump PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5dump")
set_property (TARGET hdf5::h5diff PROPERTY IMPORTED_LOCATION "${HDF5_TOOLS_DIR}/h5diff")
set (HDF5_DUMP_EXECUTABLE $)
set (HDF5_DIFF_EXECUTABLE $)
endif ()
endif ()
if (HDF5_FOUND)
message (STATUS "HDF5 found: INC=${HDF5_INCLUDE_DIR}")
if (USE_SHARED_LIBS AND NOT HDF5_BUILD_SHARED_LIBS)
message (STATUS "HDF5 build type does match requested type")
endif ()
set (H4H5_HAVE_H5PUBCONF_H 1)
set (H4H5_HAVE_HDF5 1)
set (H4H5_HDF5_HEADER "h5pubconf.h")
set (HDF5_INCLUDE_DIR_GEN ${HDF5_INCLUDE_DIR})
set (HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR})
else ()
if (HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_HDF5_LIBRARY (${HDF_ALLOW_EXTERNAL_SUPPORT} ${LIB_TYPE})
set (H4H5_HAVE_H5PUBCONF_H 1)
set (H4H5_HAVE_HDF5 1)
set (H4H5_HDF5_HEADER "h5pubconf.h")
message (STATUS "HDF5 is built")
if (USE_SHARED_LIBS)
set (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_SHARED_LIBRARY})
add_definitions (-DH5_BUILT_AS_DYNAMIC_LIB)
else ()
set (HDF5_LINK_LIBS ${HDF5_LINK_LIBS} ${HDF5_STATIC_LIBRARY})
add_definitions (-DH5_BUILT_AS_STATIC_LIB)
endif ()
else ()
message (FATAL_ERROR " HDF5 is Required for H4H5Tools")
endif ()
endif ()
else ()
# This project is being called from within another and HDF5 is already configured
set (H4H5_HAVE_H5PUBCONF_H 1)
set (H4H5_HAVE_HDF5 1)
endif ()
message (STATUS "HDF5 link libs: ${HDF5_LINK_LIBS}")
if (BUILD_SHARED_LIBS)
message (STATUS "HDF5 shared link libs: ${HDF5_LINK_SHLIBS}")
endif ()
if (NOT HDF5_LIBRARY)
set (HDF5_LIBRARY ${HDF5_LIBRARIES})
endif ()
INCLUDE_DIRECTORIES (${HDF5_INCLUDE_DIRS})
set (HDF5_FOUND 1)
set (HDF5_INCLUDE_DIR_GEN ${HDF5_INCLUDE_DIR_GEN})
set (HDF5_VERSION_STRING ${HDF5_VERSION_STRING})
endmacro ()