@@ -93,7 +93,6 @@ INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
9393INCLUDE (${CMAKE_ROOT} /Modules/CheckFunctionExists.cmake )
9494INCLUDE (${CMAKE_ROOT} /Modules/CheckCXXSourceCompiles.cmake )
9595INCLUDE (${CMAKE_ROOT} /Modules/CheckCSourceCompiles.cmake )
96- INCLUDE (${CMAKE_ROOT} /Modules/CheckCSourceRuns.cmake )
9796INCLUDE (${CMAKE_ROOT} /Modules/TestBigEndian.cmake )
9897INCLUDE (${CMAKE_ROOT} /Modules/CheckSymbolExists.cmake )
9998INCLUDE (${CMAKE_ROOT} /Modules/GetPrerequisites.cmake )
@@ -501,6 +500,14 @@ IF(ENABLE_NETCDF_4)
501500 SET (ENABLE_NETCDF4 ON CACHE BOOL "" )
502501ENDIF ()
503502
503+ # Option to allow for strict null file padding.
504+ # See https://github.com/Unidata/netcdf-c/issues/657 for more information
505+ OPTION (ENABLE_STRICT_NULL_BYTE_HEADER_PADDING "Enable strict null byte header padding." OFF )
506+
507+ IF (ENABLE_STRICT_NULL_BYTE_HEADER_PADDING)
508+ SET (USE_STRICT_NULL_BYTE_HEADER_PADDING ON CACHE BOOL "" )
509+ ENDIF (ENABLE_STRICT_NULL_BYTE_HEADER_PADDING )
510+
504511# Option for building RPC
505512OPTION (ENABLE_RPC "Enable RPC Client and Server." OFF )
506513IF (ENABLE_RPC)
@@ -826,7 +833,6 @@ ELSE()
826833 SET (ENABLE_DAP4 OFF )
827834ENDIF ()
828835
829- # Check to see if libtool supports
830836
831837# Check for the math library so it can be explicitly linked.
832838IF (NOT WIN32 )
@@ -889,8 +895,7 @@ IF(ENABLE_TESTS)
889895
890896 # Options for CTest-based tests, dashboards.
891897 SET (NC_CTEST_PROJECT_NAME "netcdf-c" CACHE STRING "Project Name for CTest-based testing purposes." )
892- SET (NC_CTEST_DROP_SITE "129.114.104.111" CACHE STRING "Dashboard location for CTest-based testing purposes." )
893- #SET(NC_CTEST_DROP_SITE "my.cdash.org" CACHE STRING "Dashboard location for CTest-based testing purposes.")
898+ SET (NC_CTEST_DROP_SITE "cdash.unidata.ucar.edu" CACHE STRING "Dashboard location for CTest-based testing purposes." )
894899 SET (NC_CTEST_DROP_LOC_PREFIX "" CACHE STRING "Prefix for Dashboard location on remote server when using CTest-based testing." )
895900
896901 FIND_PROGRAM (HOSTNAME_CMD NAMES hostname )
@@ -995,7 +1000,6 @@ IF(ENABLE_PARALLEL4 AND ENABLE_NETCDF_4)
9951000 ENDIF ()
9961001ENDIF ()
9971002
998-
9991003# Options to enable parallel IO, tests.
10001004SET (STATUS_PNETCDF "OFF" )
10011005OPTION (ENABLE_PNETCDF "Build with parallel I/O for classic and 64-bit offset files using parallel-netcdf." OFF )
@@ -1101,6 +1105,12 @@ IF(ENABLE_PARALLEL_TESTS AND USE_PARALLEL)
11011105 ENDIF ()
11021106ENDIF ()
11031107
1108+ # Enable special filter test; experimental when using cmake.
1109+ OPTION (ENABLE_FILTER_TEST "Enable special filter test. Ignored if netCDF4 is not enabled" OFF )
1110+ IF (USE_NETCDF4)
1111+ SET (ENABLE_FILTER_TEST OFF CACHE BOOL "" )
1112+ ENDIF ()
1113+
11041114# Determine whether or not to generate documentation.
11051115OPTION (ENABLE_DOXYGEN "Enable generation of doxygen-based documentation." OFF )
11061116IF (ENABLE_DOXYGEN)
@@ -1195,14 +1205,12 @@ MARK_AS_ADVANCED(ENABLE_SHARED_LIBRARY_VERSION)
11951205SET (SIGNED_TEST_SOURCE "\n
11961206 #include <stdlib.h>\n
11971207 int main(void) {\n
1198- char is_signed = (char) - 1;\n
1199- if(is_signed < 0)\n
1200- return 1;\n
1201- else\n
1202- return 0;\n
1208+ char error_if_char_is_signed[((char)-1) < 0 ? -1 : 1];\n
1209+ error_if_char_is_signed[0] = 0;
1210+ return -;\n
12031211}\n " )
12041212
1205- CHECK_C_SOURCE_RUNS ("${SIGNED_TEST_SOURCE} " __CHAR_UNSIGNED__ )
1213+ CHECK_C_SOURCE_COMPILES ("${SIGNED_TEST_SOURCE} " __CHAR_UNSIGNED__ )
12061214
12071215# Library include checks
12081216CHECK_INCLUDE_FILE ("math.h" HAVE_MATH_H )
@@ -1241,6 +1249,7 @@ CHECK_INCLUDE_FILE("sys/types.h" HAVE_SYS_TYPES_H)
12411249CHECK_INCLUDE_FILE ("sys/wait.h" HAVE_SYS_WAIT_H )
12421250CHECK_INCLUDE_FILE ("sys/mman.h" HAVE_SYS_MMAN_H )
12431251CHECK_INCLUDE_FILE ("sys/resource.h" HAVE_SYS_RESOURCE_H )
1252+ CHECK_INCLUDE_FILE ("sys/cdefs.h" HAVE_SYS_CDEFS_H )
12441253CHECK_INCLUDE_FILE ("fcntl.h" HAVE_FCNTL_H )
12451254CHECK_INCLUDE_FILE ("inttypes.h" HAVE_INTTYPES_H )
12461255CHECK_INCLUDE_FILE ("pstdint.h" HAVE_PSTDINT_H )
@@ -1511,7 +1520,7 @@ ENDMACRO()
15111520MACRO (build_bin_test_no_prefix F )
15121521 build_bin_test (${F} )
15131522 IF (MSVC )
1514- SET_PROPERTY (TEST ${F} PROPERTY FOLDER "tests/" )
1523+ # SET_PROPERTY(TEST ${F} PROPERTY FOLDER "tests/")
15151524 SET_TARGET_PROPERTIES (${F} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
15161525 ${CMAKE_CURRENT_BINARY_DIR} )
15171526 SET_TARGET_PROPERTIES (${F} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG
@@ -1784,10 +1793,6 @@ IF(MSVC)
17841793 DESTINATION ${CMAKE_INSTALL_BINDIR}
17851794 COMPONENT dependencies)
17861795
1787- #INSTALL(DIRECTORY ${CMAKE_PREFIX_PATH} DESTINATION "deps" COMPONENT dependencies)
1788- # INSTALL(FILES ${ALL_TLL_LIBS}
1789- # DESTINATION ${CMAKE_INSTALL_LIBDIR}
1790- # COMPONENT dependencies)
17911796ENDIF ()
17921797
17931798# Subdirectory CMakeLists.txt files should specify their own
@@ -1829,6 +1834,12 @@ ENDFOREACH()
18291834SET (NC_LIBS "-lnetcdf ${NC_LIBS} " )
18301835
18311836STRING (REPLACE ";" " " NC_LIBS "${NC_LIBS} " )
1837+ STRING (REPLACE "-lhdf5::hdf5-shared" "-lhdf5" NC_LIBS ${NC_LIBS} )
1838+ STRING (REPLACE "-lhdf5::hdf5_hl-shared" "-lhdf5_hl" NC_LIBS ${NC_LIBS} )
1839+ STRING (REPLACE "-lhdf5::hdf5-static" "-lhdf5" NC_LIBS ${NC_LIBS} )
1840+ STRING (REPLACE "-lhdf5::hdf5_hl-static" "-lhdf5_hl" NC_LIBS ${NC_LIBS} )
1841+
1842+
18321843STRING (REPLACE ";" " " LINKFLAGS "${LINKFLAGS} " )
18331844
18341845LIST (REMOVE_DUPLICATES NC_LIBS)
0 commit comments