Skip to content

Commit d5a3fc3

Browse files
authored
Merge pull request #2944 from WardF/fix-cmake-summary.wif
Fix cmake-based libnetcdf.settings.in
2 parents e3feef8 + 3ca0959 commit d5a3fc3

File tree

6 files changed

+36
-22
lines changed

6 files changed

+36
-22
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ else() # No option specified
681681
endif()
682682

683683
# Try to enable NCZarr zip support
684-
option(NETCDF_ENABLE_NCZARR_ZIP "Enable NCZarr ZIP support." OFF)
684+
option(NETCDF_ENABLE_NCZARR_ZIP "Enable NCZarr ZIP support." ${NETCDF_ENABLE_NCZARR})
685685

686686
include(CMakeDependentOption)
687687

@@ -1730,6 +1730,8 @@ endif()
17301730
# Copy the CTest customization file into binary directory, as required.
17311731
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/CTestCustom.cmake")
17321732

1733+
message(STATUS "STD_FILTERS: ${STD_FILTERS}")
1734+
17331735
# Generate file from template.
17341736
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libnetcdf.settings.in"
17351737
"${CMAKE_CURRENT_BINARY_DIR}/libnetcdf.settings"

cmake/dependencies.cmake

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ endif()
369369
################################
370370
# Zips
371371
################################
372+
MESSAGE(STATUS "Checking for filter libraries")
372373
IF (NETCDF_ENABLE_FILTER_SZIP)
373374
find_package(Szip)
374375
elseif(NETCDF_ENABLE_NCZARR)
@@ -385,31 +386,40 @@ IF (NETCDF_ENABLE_FILTER_ZSTD)
385386
endif()
386387

387388
# Accumulate standard filters
388-
set(STD_FILTERS "deflate") # Always have deflate*/
389+
#set(STD_FILTERS "bz2")
390+
set(FOUND_STD_FILTERS "")
391+
if(ENABLE_ZLIB)
392+
set(STD_FILTERS "deflate")
393+
endif()
389394
set_std_filter(Szip)
390395
set(HAVE_SZ ${Szip_FOUND})
391396
set(USE_SZIP ${HAVE_SZ})
392397
set_std_filter(Blosc)
393398
if(Zstd_FOUND)
394399
set_std_filter(Zstd)
395-
set(HAVE_ZSTD ON)
396400
endif()
397401
if(Bz2_FOUND)
398402
set_std_filter(Bz2)
399403
else()
400404
# The reason we use a local version is to support a more comples test case
401-
message("libbz2 not found using built-in version")
405+
message("libbz2 not found using built-in version")
402406
set(HAVE_LOCAL_BZ2 ON)
403407
set(HAVE_BZ2 ON CACHE BOOL "")
404408
set(STD_FILTERS "${STD_FILTERS} bz2")
405409
endif()
406410

411+
set(STD_FILTERS "${STD_FILTERS}${FOUND_STD_FILTERS}")
407412
IF (NETCDF_ENABLE_NCZARR_ZIP)
408-
find_package(Zip REQUIRED)
409-
target_include_directories(netcdf
410-
PRIVATE
413+
find_package(Zip)
414+
if(Zip_FOUND)
415+
target_include_directories(netcdf
416+
PRIVATE
411417
${Zip_INCLUDE_DIRS}
412-
)
418+
)
419+
else()
420+
message(STATUS "libzip development package not found, disabling NETCDF_ENABLE_NCZARR_ZIP")
421+
set(NETCDF_ENABLE_NCZARR_ZIP OFF CACHE BOOL "Enable NCZARR_ZIP functionality." FORCE)
422+
endif()
413423
endif ()
414424

415425
################################

cmake/netcdf_functions_macros.cmake

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,25 @@
22
# Macros
33
################################
44

5-
macro(set_std_filter filter)
5+
function(set_std_filter filter)
66
# Upper case the filter name
77
string(TOUPPER "${filter}" upfilter)
88
string(TOLOWER "${filter}" downfilter)
9-
if(ENABLE_FILTER_${upfilter})
9+
if(NETCDF_ENABLE_FILTER_${upfilter})
1010
# Define a test flag for filter
1111
if(${filter}_FOUND)
1212
include_directories(${${filter}_INCLUDE_DIRS})
13-
set(ENABLE_${upfilter} TRUE)
14-
set(HAVE_${upfilter} ON)
15-
set(STD_FILTERS "${STD_FILTERS} ${downfilter}")
16-
message(">>> Standard Filter: ${downfilter}")
13+
set(NETCDF_ENABLE_${upfilter} TRUE CACHE BOOL "Enable ${upfilter}")
14+
set(HAVE_${upfilter} ON CACHE BOOL "Have ${upfilter}")
15+
set(FOUND_STD_FILTERS "${FOUND_STD_FILTERS} ${downfilter}" PARENT_SCOPE)
1716
else()
18-
set(ENABLE_${upfilter} FALSE)
19-
set(HAVE_${upfilter} OFF)
17+
set(NETCDF_ENABLE_${upfilter} FALSE CACHE BOOL "Enable ${upfilter}" FORCE)
18+
set(HAVE_${upfilter} OFF CACHE BOOL "Have ${upfilter}" FORCE)
2019
endif()
2120
else()
22-
set(HAVE_${upfilter} OFF)
21+
set(HAVE_${upfilter} OFF CACHE BOOL "Have ${upfilter}" FORCE)
2322
endif()
24-
endmacro(set_std_filter)
23+
endfunction(set_std_filter)
2524

2625
macro(getuname name flag)
2726
execute_process(COMMAND "${UNAME}" "${flag}" OUTPUT_VARIABLE "${name}" OUTPUT_STRIP_TRAILING_WHITESPACE)

libnetcdf.settings.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ S3 Support: @HAS_S3@
4343
S3 SDK: @WHICH_S3_SDK@
4444

4545
NCZarr Support: @HAS_NCZARR@
46+
NCZarr Zip Support: @HAS_NCZARR_ZIP@
4647

4748
Diskless Support: @HAS_DISKLESS@
4849
MMap Support: @HAS_MMAP@

nczarr_test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ IF(NETCDF_ENABLE_TESTS)
226226
if(NETCDF_ENABLE_NCZARR_ZIP)
227227
add_sh_test(nczarr_test run_newformat)
228228
# Test various corrupted files
229-
ADD_SH_TEST(nczarr_test run_corrupt.sh)
229+
ADD_SH_TEST(nczarr_test run_corrupt)
230230
endif()
231231

232232
IF(FALSE) # Obsolete tests

plugins/CMakeLists.txt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,18 @@ buildplugin(h5deflate "h5deflate")
8787

8888
buildplugin(nczmisc "zmisc")
8989
buildplugin(nczhdf5filters "zhdf5filters" netcdf)
90-
buildplugin(nczstdfilters "zstdfilters" netcdf)
9190

9291
if(NETCDF_ENABLE_BLOSC)
9392
set(h5blosc_SOURCES H5Zblosc.c)
94-
buildplugin(h5blosc "h5blosc" netcdf;${Blosc_LIBRARIES})
93+
buildplugin(h5blosc "h5blosc" ${Blosc_LIBRARIES})
94+
buildplugin(nczstdfilters "zstdfilters" netcdf;${Blosc_LIBRARIES})
95+
else()
96+
buildplugin(nczstdfilters "zstdfilters" netcdf)
9597
endif()
9698

9799
if(NETCDF_ENABLE_ZSTD)
98100
set(h5zstd_SOURCES H5Zzstd.c H5Zzstd.h)
99-
buildplugin(h5zstd "h5zstd" netcdf;${Zstd_LIBRARIES})
101+
buildplugin(h5zstd "h5zstd" ${Zstd_LIBRARIES})
100102
endif()
101103

102104
# Need our version of szip if libsz available and we are not using HDF5

0 commit comments

Comments
 (0)