1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
|
#-----------------------------------------------------------------------------
# Options for HDF4 Filters
#-----------------------------------------------------------------------------
option (HDF4_USE_ZLIB_NG "Use zlib-ng library as zlib library" OFF)
option (HDF4_USE_ZLIB_STATIC "Find static zlib library" OFF)
option (HDF4_USE_LIBAEC_STATIC "Find static AEC library" OFF)
option (JPEG_USE_EXTERNAL "Use External Library Building for JPEG" OFF)
mark_as_advanced (JPEG_USE_EXTERNAL)
option (ZLIB_USE_EXTERNAL "Use External Library Building for ZLIB" OFF)
mark_as_advanced (ZLIB_USE_EXTERNAL)
option (SZIP_USE_EXTERNAL "Use External Library Building for SZIP" OFF)
mark_as_advanced (SZIP_USE_EXTERNAL)
option (JPEG_USE_LOCALCONTENT "Use local file for JPEG FetchContent" OFF)
mark_as_advanced (JPEG_USE_LOCALCONTENT)
option (ZLIB_USE_LOCALCONTENT "Use local file for ZLIB FetchContent" OFF)
mark_as_advanced (ZLIB_USE_LOCALCONTENT)
option (LIBAEC_USE_LOCALCONTENT "Use local file for LIBAEC FetchContent" OFF)
mark_as_advanced (LIBAEC_USE_LOCALCONTENT)
if (NOT JPEG_USE_LOCALCONTENT)
set (JPEG_URL ${JPEG_TGZ_ORIGPATH}/${JPEG_TGZ_NAME})
else ()
set (JPEG_URL ${TGZPATH}/${JPEG_TGZ_NAME})
endif ()
message (VERBOSE "Filter JPEG file is ${JPEG_URL}")
if (NOT ZLIB_USE_LOCALCONTENT)
if (HDF4_USE_ZLIB_NG)
set (ZLIB_URL ${ZLIBNG_TGZ_ORIGPATH}/${ZLIBNG_TGZ_NAME})
else ()
set (ZLIB_URL ${ZLIB_TGZ_ORIGPATH}/${ZLIB_TGZ_NAME})
endif ()
else ()
if (HDF4_USE_ZLIB_NG)
set (ZLIB_URL ${TGZPATH}/${ZLIBNG_TGZ_NAME})
else ()
set (ZLIB_URL ${TGZPATH}/${ZLIB_TGZ_NAME})
endif ()
endif ()
message (VERBOSE "Filter ZLIB file is ${ZLIB_URL}")
if (NOT LIBAEC_USE_LOCALCONTENT)
set (SZIP_URL ${LIBAEC_TGZ_ORIGPATH}/${LIBAEC_TGZ_NAME})
else ()
set (SZIP_URL ${TGZPATH}/${LIBAEC_TGZ_NAME})
endif ()
message (VERBOSE "Filter SZIP file is ${SZIP_URL}")
include (ExternalProject)
#option (HDF4_ALLOW_EXTERNAL_SUPPORT "Allow External Library Building (NO GIT TGZ)" "NO")
set (HDF4_ALLOW_EXTERNAL_SUPPORT "NO" CACHE STRING "Allow External Library Building (NO GIT TGZ)")
set_property (CACHE HDF4_ALLOW_EXTERNAL_SUPPORT PROPERTY STRINGS NO GIT TGZ)
if (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
set (JPEG_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for JPEG else search" FORCE)
set (ZLIB_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for ZLIB else search" FORCE)
set (SZIP_USE_EXTERNAL ON CACHE BOOL "Use External Library Building for SZIP else search" FORCE)
if (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT")
set (JPEG_URL ${JPEG_GIT_URL} CACHE STRING "Path to jpeg git repository")
set (JPEG_BRANCH ${JPEG_GIT_BRANCH})
set (ZLIB_URL ${ZLIB_GIT_URL} CACHE STRING "Path to zlib git repository")
set (ZLIB_BRANCH ${ZLIB_GIT_BRANCH})
set (SZIP_URL ${LIBAEC_GIT_URL} CACHE STRING "Path to szip git repository")
set (SZIP_BRANCH ${LIBAEC_GIT_BRANCH})
elseif (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
if (NOT TGZPATH)
set (TGZPATH ${HDF4_SOURCE_DIR})
endif ()
if (JPEG_USE_LOCALCONTENT)
if (NOT EXISTS "${JPEG_URL}")
set (HDF4_ENABLE_JPEG_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR "Filter JPEG support in HDF4 is required but file ${JPEG_URL} not found")
endif ()
endif ()
if (ZLIB_USE_LOCALCONTENT)
if (NOT EXISTS "${ZLIB_URL}")
set (HDF4_ENABLE_Z_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR "Filter ZLIB support in HDF4 is required but file ${ZLIB_URL} not found")
endif ()
endif ()
if (LIBAEC_USE_LOCALCONTENT)
if (NOT EXISTS "${SZIP_URL}")
set (HDF4_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "" FORCE)
message (VERBOSE "Filter SZIP file ${SZIP_URL} not found")
endif ()
endif ()
else ()
set (HDF4_ENABLE_JPEG_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
set (JPEG_USE_EXTERNAL OFF CACHE BOOL "Use External Library Building for JPEG else search" FORCE)
set (HDF4_ENABLE_Z_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
set (ZLIB_USE_EXTERNAL OFF CACHE BOOL "Use External Library Building for ZLIB else search" FORCE)
set (HDF4_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "" FORCE)
set (SZIP_USE_EXTERNAL OFF CACHE BOOL "Use External Library Building for SZIP else search" FORCE)
endif ()
endif ()
#-----------------------------------------------------------------------------
# Option for LibJpeg support
#-----------------------------------------------------------------------------
set(H4_JPEG_FOUND FALSE)
if (HDF4_ENABLE_JPEG_LIB_SUPPORT)
if (NOT H4_JPEGLIB_HEADER)
if (NOT JPEG_USE_EXTERNAL)
option (HDF4_MODULE_MODE_JPEG "Prefer module mode to find JPEG" ON)
mark_as_advanced (HDF4_MODULE_MODE_JPEG)
set(JPEG_FOUND FALSE)
if (HDF4_MODULE_MODE_JPEG)
# Expect that the default shared library is expected with FindJPEG.cmake
find_package (JPEG MODULE)
else ()
# Expect that a correctly built library with CMake config files is available
if (HDF4_USE_JPEG_STATIC)
set(JPEG_SEARCH_TYPE static)
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
set(JPEG_USE_STATIC_LIBS ${HDF4_USE_JPEG_STATIC})
endif()
else ()
set(JPEG_SEARCH_TYPE shared)
endif ()
find_package (JPEG NAMES ${JPEG_PACKAGE_NAME}${HDF_PACKAGE_EXT} CONFIG OPTIONAL_COMPONENTS ${JPEG_SEARCH_TYPE})
endif ()
set(H4_JPEG_FOUND ${JPEG_FOUND})
if (H4_JPEG_FOUND)
set (H4_JPEGLIB_HEADER "jpeglib.h")
set (H4_JPEG_INCLUDE_DIR_GEN ${JPEG_INCLUDE_DIR})
set (H4_JPEG_INCLUDE_DIRS ${JPEG_INCLUDE_DIRS} ${JPEG_INCLUDE_DIR})
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${JPEG_LIBRARIES})
endif ()
else ()
if (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_JPEG_LIBRARY (${HDF4_ALLOW_EXTERNAL_SUPPORT})
message (VERBOSE "Filter JPEG is built")
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${H4_JPEG_STATIC_LIBRARY})
endif ()
endif ()
else ()
# This project is being called from within another and JPEGLib is already configured
set(H4_JPEG_FOUND TRUE)
endif ()
if (H4_JPEG_FOUND)
set (H4_HAVE_JPEGLIB_H 1)
set (H4_HAVE_LIBJPEG 1)
set (HDF4_COMP_INCLUDE_DIRECTORIES "${HDF4_COMP_INCLUDE_DIRECTORIES};${H4_JPEG_INCLUDE_DIRS}")
message (VERBOSE "Filter JPEGLIB is ON")
else ()
set (HDF4_ENABLE_JPEG_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR " JPEG support in HDF4 was requested and required but not found")
endif ()
else ()
message (FATAL_ERROR " JPEG support in HDF4 is required but not found")
endif ()
#-----------------------------------------------------------------------------
# Option for ZLib support
#-----------------------------------------------------------------------------
set(H4_ZLIB_FOUND FALSE)
if(NOT DEFINED ZLIB_PACKAGE_NAME)
set(ZLIB_PACKAGE_NAME "zlib")
endif ()
if(NOT DEFINED ZLIBNG_PACKAGE_NAME)
set(ZLIBNG_PACKAGE_NAME "zlib-ng")
endif ()
if (HDF4_ENABLE_Z_LIB_SUPPORT)
if (NOT H4_ZLIB_HEADER)
if (NOT ZLIB_USE_EXTERNAL)
option (HDF4_MODULE_MODE_ZLIB "Prefer module mode to find ZLIB" ON)
mark_as_advanced (HDF4_MODULE_MODE_ZLIB)
if (HDF4_USE_ZLIB_NG)
set (HDF4_MODULE_MODE_ZLIB OFF CACHE BOOL "" FORCE)
set (PACKAGE_NAME ${ZLIBNG_PACKAGE_NAME}${HDF_PACKAGE_EXT})
else ()
set (PACKAGE_NAME ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT})
endif ()
set(ZLIB_FOUND FALSE)
message (VERBOSE "Filter ZLIB package name:${PACKAGE_NAME}")
if (HDF4_MODULE_MODE_ZLIB)
# Expect that the default shared library is expected with FindZLIB.cmake
find_package (ZLIB MODULE)
else ()
# Expect that a correctly built library with CMake config files is available
if (HDF4_USE_ZLIB_STATIC)
set(ZLIB_SEARCH_TYPE static)
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
set(ZLIB_USE_STATIC_LIBS ${HDF4_USE_ZLIB_STATIC})
endif()
else ()
set(ZLIB_SEARCH_TYPE shared)
endif ()
find_package (ZLIB NAMES ${PACKAGE_NAME} CONFIG OPTIONAL_COMPONENTS ${ZLIB_SEARCH_TYPE})
endif ()
set(H4_ZLIB_FOUND ZLIB_FOUND})
if (H4_ZLIB_FOUND)
if (HDF4_USE_ZLIB_NG)
set (H4_ZLIB_HEADER "zlib-ng.h")
else ()
set (H4_ZLIB_HEADER "zlib.h")
endif ()
set (H4_ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR})
set (H4_ZLIB_INCLUDE_DIRS ${H4_ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR})
if (NOT WIN32) #windows has a list of names
# The FindZLIB.cmake module does not set an OUTPUT_NAME
# on the target. The target returned is: ZLIB::ZLIB
get_filename_component (libname ${ZLIB_LIBRARIES} NAME_WLE)
string (REGEX REPLACE "^lib" "" libname ${libname})
set_target_properties (ZLIB::ZLIB PROPERTIES OUTPUT_NAME ${libname})
endif ()
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ZLIB::ZLIB)
endif ()
else ()
if (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_ZLIB_LIBRARY (${HDF4_ALLOW_EXTERNAL_SUPPORT})
message (VERBOSE "Filter ZLIB is built")
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${H4_ZLIB_STATIC_LIBRARY})
endif ()
endif ()
else ()
# This project is being called from within another and ZLib is already configured
set(H4_ZLIB_FOUND TRUE)
endif ()
if (H4_ZLIB_FOUND)
set (H4_HAVE_FILTER_DEFLATE 1)
set (H4_HAVE_ZLIB_H 1)
if (HDF4_USE_ZLIB_NG)
set (H4_HAVE_ZLIBNG_H 1)
endif ()
set (H4_HAVE_LIBZ 1)
set (HDF4_COMP_INCLUDE_DIRECTORIES "${HDF4_COMP_INCLUDE_DIRECTORIES};${H4_ZLIB_INCLUDE_DIRS}")
message (VERBOSE "Filter ZLIB is ON")
else ()
set (HDF4_ENABLE_Z_LIB_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR " ZLib support in HDF4 is required but not found")
endif ()
message (VERBOSE "H4_ZLIB_HEADER=${H4_ZLIB_HEADER}")
endif ()
#-----------------------------------------------------------------------------
# Option for SzLib support
#-----------------------------------------------------------------------------
set(H4_SZIP_FOUND FALSE)
if(NOT DEFINED LIBAEC_PACKAGE_NAME)
set(LIBAEC_PACKAGE_NAME "libaec")
endif ()
set (SZIP_INFO "disabled")
if (HDF4_ENABLE_SZIP_SUPPORT)
option (HDF4_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON)
if (NOT SZIP_USE_EXTERNAL)
if (HDF4_USE_LIBAEC_STATIC)
set(LIBAEC_SEARCH_TYPE static)
else ()
set(LIBAEC_SEARCH_TYPE shared)
endif ()
set(libaec_USE_STATIC_LIBS ${HDF4_USE_LIBAEC_STATIC})
set(SZIP_FOUND FALSE)
# Search pure Config mode, there is not a FindSZIP module available
find_package (${LIBAEC_PACKAGE_NAME} NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} OPTIONAL_COMPONENTS ${LIBAEC_SEARCH_TYPE})
set(H4_SZIP_FOUND ${${LIBAEC_PACKAGE_NAME}_FOUND})
if (H4_SZIP_FOUND)
set (H4_SZIP_INCLUDE_DIR_GEN ${SZIP_INCLUDE_DIR})
set (H4_SZIP_INCLUDE_DIRS ${H4_SZIP_INCLUDE_DIRS} ${SZIP_INCLUDE_DIR})
if(LIBAEC_PACKAGE_NAME STREQUAL "libaec")
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} libaec::sz libaec::aec)
else ()
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES})
endif ()
endif ()
message (VERBOSE "H4_SZIP_FOUND=${SZIP_FOUND} and LINK_COMP_LIBS=${LINK_COMP_LIBS}")
else ()
if (HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "GIT" OR HDF4_ALLOW_EXTERNAL_SUPPORT MATCHES "TGZ")
EXTERNAL_SZIP_LIBRARY (${HDF4_ALLOW_EXTERNAL_SUPPORT} ${HDF4_ENABLE_SZIP_ENCODING})
message (VERBOSE "Filter SZIP is built using library AEC")
set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${H4_SZIP_STATIC_LIBRARY})
endif ()
endif ()
message (VERBOSE "LINK_COMP_LIBS=${LINK_COMP_LIBS}")
if (H4_SZIP_FOUND)
set (H4_HAVE_FILTER_SZIP 1)
set (H4_HAVE_SZLIB_H 1)
set (H4_HAVE_LIBSZ 1)
set (HDF4_COMP_INCLUDE_DIRECTORIES "${HDF4_COMP_INCLUDE_DIRECTORIES};${H4_SZIP_INCLUDE_DIRS}")
message (VERBOSE "Filter SZIP is ON")
if (HDF4_ENABLE_SZIP_ENCODING)
set (H4_HAVE_SZIP_ENCODER 1)
set (SZIP_INFO "enabled with encoder")
else ()
set (SZIP_INFO "enabled with decoder only")
endif ()
else ()
set (HDF4_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "" FORCE)
message (FATAL_ERROR "SZIP support in HDF4 was requested but not found")
endif ()
endif ()
|