@@ -26,7 +26,7 @@ set(PACKAGE "netCDF" CACHE STRING "")
2626
2727SET (NC_VERSION_MAJOR 4)
2828SET (NC_VERSION_MINOR 8)
29- SET (NC_VERSION_PATCH 2 )
29+ SET (NC_VERSION_PATCH 1 )
3030SET (NC_VERSION_NOTE "-development" )
3131SET (netCDF_VERSION ${NC_VERSION_MAJOR} .${NC_VERSION_MINOR} .${NC_VERSION_PATCH}${NC_VERSION_NOTE} )
3232SET (VERSION ${netCDF_VERSION} )
@@ -118,6 +118,11 @@ MACRO(CHECK_C_LINKER_FLAG M_FLAG M_RESULT)
118118 SET (CMAKE_REQUIRED_FLAGS "${T_REQ_FLAG} " )
119119ENDMACRO ()
120120
121+ # Enable 'dist and distcheck'.
122+ # File adapted from http://ensc.de/cmake/FindMakeDist.cmake
123+ FIND_PACKAGE (MakeDist )
124+ # End 'enable dist and distcheck'
125+
121126# Set the build type.
122127IF (NOT CMAKE_BUILD_TYPE )
123128 SET (CMAKE_BUILD_TYPE DEBUG CACHE STRING "Choose the type of build, options are: None, Debug, Release."
@@ -194,15 +199,6 @@ ENDIF()
194199
195200OPTION (NC_FIND_SHARED_LIBS "Find dynamically-built versions of dependent libraries" ${BUILD_SHARED_LIBS} )
196201
197- ##
198- # Check to see if C compiler supports -fno-strict-aliasing, in support of
199- # https://github.com/Unidata/netcdf-c/issues/1983
200- ##
201- CHECK_C_COMPILER_FLAG (-fno-strict-aliasing CC_SUPPORTS_NO_STRICT_ALIASING )
202- IF (CC_SUPPORTS_NO_STRICT_ALIASING)
203- SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing" )
204- ENDIF (CC_SUPPORTS_NO_STRICT_ALIASING )
205-
206202##
207203# We've had a request to allow for non-versioned shared libraries.
208204# This seems reasonable enough to accommodate. See
@@ -773,10 +769,6 @@ IF(USE_HDF5)
773769 # are a hot mess between versions.
774770 ####
775771
776- IF (HDF5_hdf5_LIBRARY AND NOT HDF5_C_LIBRARY)
777- SET (HDF5_C_LIBRARY ${HDF5_hdf5_LIBRARY} )
778- ENDIF ()
779-
780772 # Depending on the install, either HDF5_hdf_library or
781773 # HDF5_C_LIBRARIES may be defined. We must check for either.
782774 IF (HDF5_C_LIBRARIES AND NOT HDF5_hdf5_LIBRARY)
@@ -933,7 +925,7 @@ int main() {
933925}" HAVE_LIBCURL_766 )
934926
935927IF (HAVE_LIBCURL_766)
936- # If libcurl version is >= 7.66, then can skip tests
928+ # If libcurl version is >= 7.66, then can skip tests
937929 # for these symbols which were added in an earlier version
938930 set (HAVE_CURLOPT_USERNAME TRUE )
939931 set (HAVE_CURLOPT_PASSWORD TRUE )
@@ -1016,17 +1008,63 @@ OPTION(ENABLE_DAP_LONG_TESTS "Enable DAP long tests." OFF)
10161008OPTION (ENABLE_DAP_REMOTE_TESTS "Enable DAP remote tests." ON )
10171009SET (REMOTETESTSERVERS "remotetest.unidata.ucar.edu" CACHE STRING "test servers to use for remote test" )
10181010
1011+ # See if we have zlib
1012+ FIND_PACKAGE (ZLIB )
1013+
1014+ # Define a test flag for have zlib library
1015+ IF (ZLIB_FOUND)
1016+ INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIRS} )
1017+ SET (ENABLE_ZLIB TRUE )
1018+ ELSE ()
1019+ SET (ENABLE_ZLIB FALSE )
1020+ ENDIF ()
1021+
1022+ # See if we have libblosc
1023+ IF (!MSVC )
1024+ FIND_PACKAGE (Blosc )
1025+ ENDIF ()
1026+ # Define a test flag for have blosc library
1027+ IF (Blosc_FOUND)
1028+ INCLUDE_DIRECTORIES (${Blosc_INCLUDE_DIRS} )
1029+ SET (ENABLE_BLOSC TRUE )
1030+ ELSE ()
1031+ SET (ENABLE_BLOSC FALSE )
1032+ ENDIF ()
1033+
1034+ # See if we have libszip
1035+ IF (!MSVC )
1036+ #FIND_PACKAGE(SZIP)
1037+ #FIND_LIBRARY(SZIP PATH NAMES szip sz)
1038+ SET (SZIP_LIBRARY ${SZIP} )
1039+ ENDIF ()
1040+ message ("xxx: ${SZIP_FOUND} ; ${SZIP} " )
1041+ # Define a test flag for have szip library
1042+ IF (SZIP_FOUND)
1043+ INCLUDE_DIRECTORIES (${SZIP_INCLUDE_DIRS} )
1044+ SET (ENABLE_SZIP TRUE )
1045+ ELSE ()
1046+ SET (ENABLE_SZIP FALSE )
1047+ ENDIF ()
1048+
10191049# See if we have libzip
10201050FIND_PACKAGE (Zip )
10211051
1022- # Define a test flag for have curl library
1052+ # Define a test flag for have zip library
10231053IF (Zip_FOUND)
10241054 INCLUDE_DIRECTORIES (${Zip_INCLUDE_DIRS} )
10251055 SET (ENABLE_NCZARR_ZIP TRUE )
10261056ELSE ()
10271057 SET (ENABLE_NCZARR_ZIP FALSE )
10281058ENDIF ()
10291059
1060+ # libdl is always available; built-in in Windows and OSX
1061+ SET (ENABLE_PLUGINS TRUE )
1062+ IF (NOT WIN32 )
1063+ IF (HAVE_DLFCN_H)
1064+ INCLUDE_DIRECTORIES ("dlfcn.h" )
1065+ ENDIF ()
1066+ ENDIF ()
1067+
10301068# Enable some developer-only tests
10311069OPTION (ENABLE_EXTRA_TESTS "Enable Extra tests. Some may not work because of known issues. Developers only." OFF )
10321070IF (ENABLE_EXTRA_TESTS)
@@ -1049,9 +1087,9 @@ IF(MSVC)
10491087 FILE (COPY ${netCDF_SOURCE_DIR} /libsrc/XGetopt.c
10501088 DESTINATION ${netCDF_BINARY_DIR} /ncdump/ )
10511089 FILE (COPY ${netCDF_SOURCE_DIR} /libsrc/XGetopt.c
1052- DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
1090+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
10531091 FILE (COPY ${netCDF_SOURCE_DIR} /libsrc/XGetopt.c
1054- DESTINATION ${netCDF_BINARY_DIR} /ncdap_test/ )
1092+ DESTINATION ${netCDF_BINARY_DIR} /ncdap_test/ )
10551093 ENDIF ()
10561094ENDIF ()
10571095
@@ -1386,20 +1424,21 @@ IF (ENABLE_PARALLEL_TESTS AND NOT USE_PARALLEL)
13861424ENDIF ()
13871425
13881426# Enable special filter test; experimental when using cmake.
1389- OPTION (ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" ${ENABLE_HDF5} )
1390- IF (ENABLE_FILTER_TESTING AND NOT ENABLE_HDF5)
1391- MESSAGE (WARNING "ENABLE_FILTER_TESTING requires HDF5. Disabling." )
1392- SET (ENABLE_FILTER_TESTING OFF )
1427+ OPTION (ENABLE_FILTER_TESTING "Enable filter testing. Ignored if shared libraries or netCDF4 are not enabled" yes )
1428+
1429+ IF (ENABLE_FILTER_TESTING)
1430+ if (NOT ENABLE_HDF5 AND NOT ENABLE_NCZARR)
1431+ MESSAGE (WARNING "ENABLE_FILTER_TESTING requires HDF5 and/or NCZarr. Disabling." )
1432+ SET (ENABLE_FILTER_TESTING OFF CACHE BOOL "Enable Filter Testing" FORCE )
1433+ ENDIF ()
13931434ENDIF ()
1435+
13941436IF (NOT BUILD_SHARED_LIBS )
13951437 MESSAGE (WARNING "ENABLE_FILTER_TESTING requires shared libraries. Disabling." )
13961438 SET (ENABLE_FILTER_TESTING OFF )
13971439ENDIF ()
1398- OPTION (ENABLE_CLIENTSIDE_FILTERS "Enable client-side filter registration." OFF )
1399- IF (NOT ENABLE_FILTER_TESTING)
1400- SET (ENABLE_CLIENTSIDE_FILTERS OFF )
1401- ENDIF ()
14021440
1441+ SET (ENABLE_CLIENTSIDE_FILTERS OFF )
14031442
14041443# Determine whether or not to generate documentation.
14051444OPTION (ENABLE_DOXYGEN "Enable generation of doxygen-based documentation." OFF )
@@ -1533,6 +1572,7 @@ CHECK_INCLUDE_FILE("libgen.h" HAVE_LIBGEN_H)
15331572CHECK_INCLUDE_FILE ("execinfo.h" HAVE_EXECINFO_H )
15341573CHECK_INCLUDE_FILE ("dirent.h" HAVE_DIRENT_H )
15351574CHECK_INCLUDE_FILE ("time.h" HAVE_TIME_H )
1575+ CHECK_INCLUDE_FILE ("dlfcn.h" HAVE_DLFCN_H )
15361576
15371577# Symbol Exists
15381578CHECK_SYMBOL_EXISTS (isfinite "math.h" HAVE_DECL_ISFINITE )
@@ -1931,7 +1971,7 @@ ENDIF(ENABLE_BASH_SCRIPT_TESTING)
19311971
19321972MACRO (add_sh_test prefix F )
19331973 IF (HAVE_BASH)
1934- ADD_TEST (${prefix} _${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR} ;export TOPSRCDIR=${CMAKE_SOURCE_DIR} ;${CMAKE_CURRENT_BINARY_DIR} /${F} .sh ${ARGN} " )
1974+ ADD_TEST (${prefix} _${F} bash "-c" "export srcdir=${CMAKE_CURRENT_SOURCE_DIR} ;export TOPSRCDIR=${CMAKE_SOURCE_DIR} ;${CMAKE_CURRENT_BINARY_DIR} /${F} .sh ${F} .sh ${ ARGN} " )
19351975 ENDIF ()
19361976ENDMACRO ()
19371977
@@ -2018,17 +2058,31 @@ IF(ENABLE_DAP4)
20182058 ADD_SUBDIRECTORY (libdap4 )
20192059ENDIF ()
20202060
2061+ IF (ENABLE_PLUGINS)
2062+ ADD_SUBDIRECTORY (libncpoco )
2063+ ENDIF ()
2064+
20212065IF (ENABLE_NCZARR)
20222066 ADD_SUBDIRECTORY (libnczarr )
20232067 FILE (COPY ${netCDF_SOURCE_DIR} /unit_test/timer_utils.h
20242068 DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
20252069 FILE (COPY ${netCDF_SOURCE_DIR} /unit_test/timer_utils.c
20262070 DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
2071+ FILE (COPY ${netCDF_SOURCE_DIR} /nc_test4/test_filter.c
2072+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
2073+ FILE (COPY ${netCDF_SOURCE_DIR} /nc_test4/test_filter_misc.c
2074+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
2075+ FILE (COPY ${netCDF_SOURCE_DIR} /nc_test4/test_filter_repeat.c
2076+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
2077+ FILE (COPY ${netCDF_SOURCE_DIR} /nc_test4/test_filter_order.c
2078+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
2079+ FILE (COPY ${netCDF_SOURCE_DIR} /nc_test4/tst_multifilter.c
2080+ DESTINATION ${netCDF_BINARY_DIR} /nczarr_test/ )
20272081ENDIF ()
20282082
20292083add_subdirectory (liblib )
20302084
2031- IF (ENABLE_FILTER_TESTING )
2085+ IF (ENABLE_PLUGINS )
20322086 add_subdirectory (plugins )
20332087ENDIF ()
20342088
@@ -2194,6 +2248,9 @@ INSTALL(PROGRAMS ${netCDF_BINARY_DIR}/nc-config
21942248##
21952249print_conf_summary ()
21962250
2251+ # Enable Makedist files.
2252+ ADD_MAKEDIST ()
2253+ ENABLE_MAKEDIST (README.md COPYRIGHT RELEASE_NOTES.md INSTALL INSTALL .cmake test_prog.c lib_flags.am cmake CMakeLists.txt COMPILE.cmake.txt config.h.cmake.in cmake_uninstall.cmake.in netcdf-config-version.cmake.in netcdf-config.cmake.in FixBundle.cmake.in nc-config.cmake.in configure configure.ac install -sh config.h.in config.sub CTestConfig.cmake.in )
21972254
21982255#####
21992256# Configure and print the libnetcdf.settings file.
@@ -2245,6 +2302,8 @@ is_enabled(ENABLE_NCZARR_S3_TESTS DO_NCZARR_S3_TESTS)
22452302is_enabled (ENABLE_MULTIFILTERS HAS_MULTIFILTERS )
22462303is_enabled (ENABLE_NCZARR_ZIP DO_NCZARR_ZIP_TESTS )
22472304is_enabled (ENABLE_LOGGING HAS_LOGGING )
2305+ is_enabled (ENABLE_FILTER_TESTING DO_FILTER_TESTS )
2306+ is_enabled (ENABLE_BLOSC HAS_BLOSC )
22482307
22492308# Generate file from template.
22502309CONFIGURE_FILE ("${CMAKE_CURRENT_SOURCE_DIR} /libnetcdf.settings.in"
@@ -2302,6 +2361,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/test_common.in ${CMAKE_CURRENT_BINARY
23022361#####
23032362configure_file (${CMAKE_CURRENT_SOURCE_DIR} /nc_test4/findplugin.in ${CMAKE_CURRENT_BINARY_DIR} /nc_test4/findplugin.sh @ONLY NEWLINE_STYLE LF )
23042363
2364+ IF (ENABLE_NCZARR)
2365+ configure_file (${CMAKE_CURRENT_SOURCE_DIR} /nc_test4/findplugin.in ${CMAKE_CURRENT_BINARY_DIR} /nczarr_test/findplugin.sh @ONLY NEWLINE_STYLE LF )
2366+ ENDIF ()
2367+
23052368IF (ENABLE_EXAMPLES)
23062369configure_file (${CMAKE_CURRENT_SOURCE_DIR} /nc_test4/findplugin.in ${CMAKE_CURRENT_BINARY_DIR} /examples/C/findplugin.sh @ONLY NEWLINE_STYLE LF )
23072370ENDIF ()
0 commit comments