Skip to content

Commit

Permalink
Remove old EXTERNALPROJECT_ADD in favor of FETCH_CONTENT
Browse files Browse the repository at this point in the history
  • Loading branch information
byrnHDF committed Oct 4, 2023
1 parent 4af60a6 commit 932478a
Show file tree
Hide file tree
Showing 74 changed files with 2,640 additions and 3,005 deletions.
24 changes: 3 additions & 21 deletions BLOSC/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ set (H5BLOSC_PACKAGE_URL "http://www.hdfgroup.org")
set (H5BLOSC_PACKAGE_BUGREPORT "help@hdfgroup.org")
set (H5BLOSC_PACKAGE_SOVERSION "${H5BLOSC_SOVERS_MAJOR}.${H5BLOSC_SOVERS_RELEASE}.${H5BLOSC_SOVERS_MINOR}")
set (H5BLOSC_PACKAGE_SOVERSION_MAJOR "${H5BLOSC_SOVERS_MAJOR}")
message("Configuring for blosc HDF5 Plugin version: " ${H5BLOSC_PACKAGE_STRING})
message (STATUS "Configuring for blosc HDF5 Plugin version: " ${H5BLOSC_PACKAGE_STRING})

#-----------------------------------------------------------------------------
# Include some macros for reusable code
Expand Down Expand Up @@ -193,7 +193,7 @@ if (HDF_ENABLE_BLOSC_SUPPORT)
set (BLOSC_INCLUDE_DIRS ${BLOSC_INCLUDE_DIRS} ${BLOSC_INCLUDE_DIR})
else ()
if (H5PL_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR H5PL_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_BLOSC_LIBRARY (${H5PL_ALLOW_EXTERNAL_SUPPORT} STATIC)
EXTERNAL_BLOSC_LIBRARY (${H5PL_ALLOW_EXTERNAL_SUPPORT})
set (H5_HAVE_BLOSC_H 1)
set (H5_HAVE_BLOSC 1)
set (H5_BLOSC_HEADER "blosc.h")
Expand All @@ -206,7 +206,7 @@ if (HDF_ENABLE_BLOSC_SUPPORT)
# This project is being called from within another and BLOSC is already configured
set (H5_HAVE_BLOSC_H 1)
endif ()
set (LINK_LIBS ${LINK_LIBS} ${BLOSC_LIBRARY})
set (LINK_LIBS ${LINK_LIBS} ${BLOSC_LIBRARIES})
set (H5BLOSC_INCLUDE_DIRS ${H5BLOSC_INCLUDE_DIRS} ${BLOSC_INCLUDE_DIRS})
message (STATUS "BLOSC is ON")
endif ()
Expand All @@ -223,13 +223,6 @@ option (HDF_PACKAGE_EXTLIBS "CPACK - include external libraries" OFF)
if (NOT HDF_EXTERNALLY_CONFIGURED)
if (HDF_PACKAGE_EXTLIBS)
set (HDF_NO_PACKAGES OFF CACHE BOOL "CPACK - Disable packaging" FORCE)
if (HDF_ENABLE_BLOSC_ZLIB_SUPPORT AND ZLIB_FOUND)
PACKAGE_BLOSC_ZLIB_LIBRARY (${H5PL_ALLOW_EXTERNAL_SUPPORT})
endif ()

if (HDF_ENABLE_BLOSC_SUPPORT AND BLOSC_FOUND)
PACKAGE_BLOSC_LIBRARY (${H5PL_ALLOW_EXTERNAL_SUPPORT})
endif ()
endif ()
endif ()

Expand All @@ -248,17 +241,6 @@ endif ()

add_subdirectory (src)

if (H5PL_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR H5PL_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (HDF_ENABLE_BLOSC_ZLIB_SUPPORT)
if (ZLIB_FOUND AND BLOSC_ZLIB_USE_EXTERNAL)
add_dependencies (${H5BLOSC_LIB_TARGET} BLOSC_ZLIB)
endif ()
endif ()
if (BLOSC_FOUND AND BLOSC_USE_EXTERNAL)
add_dependencies (${H5BLOSC_LIB_TARGET} BLOSC)
endif ()
endif ()

option (BUILD_EXAMPLES "Build h5blosc Examples" OFF)
if (BUILD_EXAMPLES)
add_subdirectory (example)
Expand Down
8 changes: 6 additions & 2 deletions BLOSC/config/cmake/ConfigureChecks.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,13 @@ macro (HDF_FUNCTION_TEST OTHER_TEST)
)
if (${OTHER_TEST})
set (${OTHER_TEST} 1 CACHE INTERNAL "Other test ${FUNCTION}")
message (VERBOSE "Performing Other Test ${OTHER_TEST} - Success")
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
message (VERBOSE "Performing Other Test ${OTHER_TEST} - Success")
endif ()
else ()
message (VERBOSE "Performing Other Test ${OTHER_TEST} - Failed")
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15.0")
message (VERBOSE "Performing Other Test ${OTHER_TEST} - Failed")
endif ()
set (${OTHER_TEST} "" CACHE INTERNAL "Other test ${FUNCTION}")
file (APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Performing Other Test ${OTHER_TEST} failed with the following output:\n"
Expand Down
149 changes: 38 additions & 111 deletions BLOSC/config/cmake/H5BLOSCMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,71 +9,43 @@
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#

include (FetchContent)
#-------------------------------------------------------------------------------
macro (EXTERNAL_BLOSC_LIBRARY compress_type libtype)
if (${libtype} MATCHES "SHARED")
set (BUILD_EXT_SHARED_LIBS "ON")
else ()
set (BUILD_EXT_SHARED_LIBS "OFF")
endif ()
macro (EXTERNAL_BLOSC_LIBRARY compress_type)
if (${compress_type} MATCHES "GIT")
EXTERNALPROJECT_ADD (BLOSC
FetchContent_Declare (BLOSC
GIT_REPOSITORY ${BLOSC_URL}
GIT_TAG ${BLOSC_BRANCH}
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_TESTS:BOOL=OFF
-DBUILD_BENCHMARKS:BOOL=OFF
-DPREFER_EXTERNAL_SNAPPY:BOOL=OFF
-DPREFER_EXTERNAL_ZLIB:BOOL=OFF
-DPREFER_EXTERNAL_ZSTD:BOOL=OFF
-DDEACTIVATE_SNAPPY:BOOL=ON
-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_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
)
elseif (${compress_type} MATCHES "TGZ")
EXTERNALPROJECT_ADD (BLOSC
FetchContent_Declare (BLOSC
URL ${BLOSC_URL}
URL_MD5 ""
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_TESTS:BOOL=OFF
-DBUILD_BENCHMARKS:BOOL=OFF
-DPREFER_EXTERNAL_SNAPPY:BOOL=OFF
-DPREFER_EXTERNAL_ZLIB:BOOL=OFF
-DPREFER_EXTERNAL_ZSTD:BOOL=OFF
-DDEACTIVATE_SNAPPY:BOOL=ON
-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_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
URL_HASH ""
)
endif ()
externalproject_get_property (BLOSC BINARY_DIR SOURCE_DIR)
FetchContent_GetProperties(BLOSC)
if(NOT blosc_POPULATED)
FetchContent_Populate(BLOSC)
set (BUILD_SHARED OFF CACHE BOOL "")
set (BUILD_TESTS OFF CACHE BOOL "")
set (BUILD_FUZZERS OFF CACHE BOOL "")
set (BUILD_BENCHMARKS OFF CACHE BOOL "")
set (PREFER_EXTERNAL_SNAPPY OFF CACHE BOOL "")
set (PREFER_EXTERNAL_ZLIB OFF CACHE BOOL "")
set (PREFER_EXTERNAL_ZSTD OFF CACHE BOOL "")
set (DEACTIVATE_SNAPPY ON CACHE BOOL "")

add_subdirectory(${blosc_SOURCE_DIR} ${blosc_BINARY_DIR})
endif()

##include (${BINARY_DIR}/${BLOSC_PACKAGE_NAME}${H5BLOSC_PACKAGE_EXT}-targets.cmake)
# Create imported target blosc_static
add_library(blosc ${libtype} IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (blosc "blosc" ${libtype} "")
add_dependencies (blosc BLOSC)
set (BLOSC_LIBRARY "blosc")
set (BLOSC_STATIC_LIBRARY "blosc_static")
set (BLOSC_LIBRARIES ${BLOSC_STATIC_LIBRARY})

set (BLOSC_INCLUDE_DIR_GEN "${BINARY_DIR}")
set (BLOSC_INCLUDE_DIR "${SOURCE_DIR}/blosc")
set (BLOSC_INCLUDE_DIR_GEN "${blosc_BINARY_DIR}")
set (BLOSC_INCLUDE_DIR "${blosc_SOURCE_DIR}/blosc")
set (BLOSC_FOUND 1)
set (BLOSC_LIBRARIES ${BLOSC_LIBRARY})
set (BLOSC_INCLUDE_DIRS ${BLOSC_INCLUDE_DIR_GEN} ${BLOSC_INCLUDE_DIR})
endmacro ()

Expand All @@ -90,82 +62,37 @@ macro (PACKAGE_BLOSC_LIBRARY compress_type)
endmacro ()

#-------------------------------------------------------------------------------
macro (EXTERNAL_BLOSC_ZLIB_LIBRARY compress_type libtype)
if (${libtype} MATCHES "SHARED")
set (BUILD_EXT_SHARED_LIBS "ON")
else ()
set (BUILD_EXT_SHARED_LIBS "OFF")
endif ()
macro (EXTERNAL_BLOSC_ZLIB_LIBRARY compress_type)
if (${compress_type} MATCHES "GIT")
EXTERNALPROJECT_ADD (BLOSC_ZLIB
FetchContent_Declare (BLOSC_ZLIB
GIT_REPOSITORY ${BLOSC_ZLIB_URL}
GIT_TAG ${BLOSC_ZLIB_BRANCH}
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_EXT_SHARED_LIBS}
-DZLIB_PACKAGE_EXT:STRING=${H5BLOSC_PACKAGE_EXT}
-DZLIB_EXTERNALLY_CONFIGURED:BOOL=OFF
-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_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
)
elseif (${compress_type} MATCHES "TGZ")
EXTERNALPROJECT_ADD (BLOSC_ZLIB
FetchContent_Declare (BLOSC_ZLIB
URL ${BLOSC_ZLIB_URL}
URL_MD5 ""
INSTALL_COMMAND ""
CMAKE_ARGS
-DBUILD_SHARED_LIBS:BOOL=${BUILD_EXT_SHARED_LIBS}
-DZLIB_PACKAGE_EXT:STRING=${H5BLOSC_PACKAGE_EXT}
-DZLIB_EXTERNALLY_CONFIGURED:BOOL=OFF
-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_PDB_OUTPUT_DIRECTORY:PATH=${CMAKE_PDB_OUTPUT_DIRECTORY}
-DCMAKE_ANSI_CFLAGS:STRING=${CMAKE_ANSI_CFLAGS}
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
URL_HASH ""
)
endif ()
externalproject_get_property (BLOSC_ZLIB BINARY_DIR SOURCE_DIR)
FetchContent_GetProperties(BLOSC_ZLIB)
if(NOT blosc_zlib_POPULATED)
FetchContent_Populate(BLOSC_ZLIB)

add_subdirectory(${blosc_zlib_SOURCE_DIR} ${blosc_zlib_BINARY_DIR})
endif()

if (WIN32)
set (BLOSC_ZLIB_LIB_NAME "zlib")
else ()
set (BLOSC_ZLIB_LIB_NAME "z")
endif ()

# Create imported target zlib-static
add_library(zlib ${libtype} IMPORTED)
HDF_IMPORT_SET_LIB_OPTIONS (zlib ${BLOSC_ZLIB_LIB_NAME} ${libtype} "")
add_dependencies (zlib BLOSC_ZLIB)
set (BLOSC_ZLIB_LIBRARY "zlib")
set ({BLOSC_ZLIB_STATIC_LIBRARY "blosc_zlib-static")
set ({BLOSC_ZLIB_LIBRARIES ${{BLOSC_ZLIB_STATIC_LIBRARY})

set (BLOSC_ZLIB_INCLUDE_DIR_GEN "${BINARY_DIR}")
set (BLOSC_ZLIB_INCLUDE_DIR "${SOURCE_DIR}")
set (BLOSC_ZLIB_INCLUDE_DIR_GEN "${blosc_zlib_BINARY_DIR}")
set (BLOSC_ZLIB_INCLUDE_DIR "${blosc_zlib_SOURCE_DIR}")
set (BLOSC_ZLIB_FOUND 1)
set (BLOSC_ZLIB_LIBRARIES ${BLOSC_ZLIB_LIBRARY})
set (BLOSC_ZLIB_INCLUDE_DIRS ${BLOSC_ZLIB_INCLUDE_DIR_GEN} ${BLOSC_ZLIB_INCLUDE_DIR})
endmacro ()

#-------------------------------------------------------------------------------
macro (PACKAGE_BLOSC_ZLIB_LIBRARY compress_type)
add_custom_target (BLOSC_ZLIB-GenHeader-Copy ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${BLOSC_ZLIB_INCLUDE_DIR_GEN}/zconf.h ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
COMMENT "Copying ${BLOSC_ZLIB_INCLUDE_DIR_GEN}/zconf.h to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/"
)
set (EXTERNAL_HEADER_LIST ${EXTERNAL_HEADER_LIST} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/zconf.h)
if (${compress_type} MATCHES "GIT" OR ${compress_type} MATCHES "SVN" OR ${compress_type} MATCHES "TGZ")
add_dependencies (BLOSC_ZLIB-GenHeader-Copy BLOSC_ZLIB)
endif ()
endmacro ()
2 changes: 2 additions & 0 deletions BLOSC/config/cmake/HDFMacros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,8 @@ macro (HDF_DIR_PATHS package_prefix)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
endif ()
endif ()

include (FetchContent)
endmacro ()

macro (ADD_H5_FLAGS h5_flag_var infile)
Expand Down
Loading

0 comments on commit 932478a

Please sign in to comment.