mirror of
https://github.com/Unidata/netcdf-c.git
synced 2025-04-06 18:00:24 +08:00
Added additional tests in CMake
This commit is contained in:
parent
081f6eae22
commit
5e9d4000e1
@ -70,8 +70,10 @@ OPTION (BUILD_UTILITIES "Build ncgen, ncgen3, ncdump." ON)
|
||||
OPTION (BUILD_MMAP "Use MMAP." OFF)
|
||||
|
||||
# Option to use Diskless
|
||||
OPTION (BUILD_DISKLESS "Build Diskless." OFF)
|
||||
|
||||
OPTION (ENABLE_DISKLESS "Build Diskless." OFF)
|
||||
IF(ENABLE_DISKLESS)
|
||||
SET(BUILD_DISKLESS ON)
|
||||
ENDIF()
|
||||
# Option Logging, only valid for netcdf4.
|
||||
# For some reason, these appear to need to be set in each folder.
|
||||
IF(ENABLE_COVERAGE_TESTS)
|
||||
@ -79,7 +81,7 @@ IF(ENABLE_COVERAGE_TESTS)
|
||||
SET(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
|
||||
SET(CMAKE_LINKER_FLAGS "-fprofile-arcs -ftest-coverage")
|
||||
ENDIF()
|
||||
OPTION (LOGGING "Enable Logging." OFF)
|
||||
OPTION (ENABLE_LOGGING "Enable Logging." OFF)
|
||||
|
||||
# Option to use HDF4
|
||||
OPTION (USE_HDF4 "Use HDF4." OFF)
|
||||
@ -126,32 +128,36 @@ IF (USE_HDF5 OR ENABLE_NETCDF_4)
|
||||
FIND_PACKAGE(HDF5)
|
||||
IF(NOT HDF5_FOUND)
|
||||
MESSAGE(FATAL_ERROR "HDF5 Not Found")
|
||||
ENDIF(NOT HDF5_FOUND)
|
||||
CHECK_INCLUDE_FILE("hdf5.h" HAVE_HDF5_H)
|
||||
IF(NOT HAVE_HDF5_H)
|
||||
ENDIF(NOT HDF5_FOUND)
|
||||
INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIRS})
|
||||
|
||||
CHECK_INCLUDE_FILE("hdf5.h" HAVE_HDF5_H)
|
||||
IF(NOT HAVE_HDF5_H)
|
||||
MESSAGE(FATAL_ERROR "HDF5 Support specified, cannot find hdf5.h")
|
||||
ENDIF(NOT HAVE_HDF5_H)
|
||||
ENDIF(NOT HAVE_HDF5_H)
|
||||
|
||||
FIND_LIBRARY(HDF5_HL_LIBRARY NAMES hdf5_hl libhdf5_hl hdf5_hldll)
|
||||
IF(NOT HDF5_HL_LIBRARY)
|
||||
FIND_LIBRARY(HDF5_HL_LIBRARY NAMES hdf5_hl libhdf5_hl hdf5_hldll)
|
||||
IF(NOT HDF5_HL_LIBRARY)
|
||||
MESSAGE(FATAL_ERROR "HDF5 Support specified, cannot find hdf5_hl")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
# Check to see if H5Z_SZIP exists in HDF5_Libraries. If so, we must use szip.
|
||||
CHECK_LIBRARY_EXISTS(${HDF5_LIBRARIES} H5Z_SZIP "" USE_SZIP)
|
||||
IF(USE_SZIP)
|
||||
FIND_LIBRARY(SZIP_LIBRARY NAMES szip sz)
|
||||
IF(NOT SZIP_LIBRARY)
|
||||
MESSAGE(FATAL_ERROR "HDF5 compiled with szip, but cannot find local szip libraries.")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Found SZip: ${SZIP_LIBRARY}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
FIND_LIBRARY(SZIP_LIBRARY NAMES szip sz)
|
||||
IF(NOT SZIP_LIBRARY)
|
||||
MESSAGE(FATAL_ERROR "HDF5 Support specified, cannot find SZip.")
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Found SZip: ${SZIP_LIBRARY}")
|
||||
ENDIF()
|
||||
|
||||
FIND_LIBRARY(ZLIB_LIBRARY NAMES zlibwapi zlibstat zlib zlib1 z)
|
||||
IF(NOT ZLIB_LIBRARY)
|
||||
FIND_LIBRARY(ZLIB_LIBRARY NAMES zlibwapi zlibstat zlib zlib1 z)
|
||||
IF(NOT ZLIB_LIBRARY)
|
||||
MESSAGE(FATAL_ERROR "HDF5 Support specified, cannot find ZLib.")
|
||||
ELSE()
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Found ZLib: ${ZLIB_LIBRARY}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(H5_USE_16_API 1)
|
||||
|
||||
@ -160,8 +166,9 @@ ENDIF ()
|
||||
|
||||
|
||||
# Option to Build DAP Client
|
||||
OPTION (USE_DAP "Enable DAP Client." ON)
|
||||
IF (USE_DAP)
|
||||
OPTION (ENABLE_DAP "Enable DAP Client." ON)
|
||||
IF (ENABLE_DAP)
|
||||
SET(USE_DAP ON)
|
||||
FIND_PACKAGE(CURL)
|
||||
#FIND_LIBRARY(CURL NAMES curl libcurl)
|
||||
IF(NOT CURL_FOUND)
|
||||
@ -169,7 +176,7 @@ IF (USE_DAP)
|
||||
ENDIF(NOT CURL_FOUND)
|
||||
#MESSAGE("Looking for libcurl: ${CURL}")
|
||||
|
||||
ENDIF(USE_DAP)
|
||||
ENDIF()
|
||||
|
||||
# If NetCDF4 and DAP, Option for DAP groups.
|
||||
IF(ENABLE_NETCDF4 AND USE_DAP)
|
||||
@ -211,19 +218,38 @@ ENDIF()
|
||||
|
||||
# Other misc. options, not detailed for now.
|
||||
OPTION (ENABLE_DOXYGEN "Enable generation of documentation" OFF)
|
||||
IF(ENABLE_DOXYGEN)
|
||||
SET(BUILD_DOCS ON)
|
||||
ENDIF()
|
||||
|
||||
OPTION (ENABLE_INTERNAL_DOCS "Enable documentation of library internals. This is of interest only to those developing the netCDF library." OFF)
|
||||
OPTION (USE_FSYNC "Enable experimental fsync code." OFF)
|
||||
OPTION (VALGRIND_TESTS "Build with valgrind tests (valgrind is required, static builds only." OFF)
|
||||
IF(ENABLE_INTERNAL_DOCS)
|
||||
SET(BUILD_INTERNAL_DOCS ON)
|
||||
ENDIF()
|
||||
|
||||
OPTION (ENABLE_FSYNC "Enable experimental fsync code." OFF)
|
||||
IF(ENABLE_FSYNC)
|
||||
SET(USE_FSYNC ON)
|
||||
ENDIF()
|
||||
|
||||
# Provide the option to perform coverage tests.
|
||||
OPTION (ENABLE_COVERAGE_TESTS "Enable compiler flags needed to perform coverage tests." OFF)
|
||||
IF(ENABLE_COVERAGE_TESTS)
|
||||
SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -fprofile-arcs -ftest-coverage")
|
||||
#SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -W -Wshadow -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-system-headers -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -fprofile-arcs -ftest-coverage")
|
||||
SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -W -profile-arcs -ftest-coverage")
|
||||
SET(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
|
||||
SET(CMAKE_EXE_LINKER_FLAGSx "-fprofile-arcs -ftest-coverage")
|
||||
MESSAGE(STATUS "Coverage Tests: On.")
|
||||
ENDIF()
|
||||
|
||||
OPTION (ENABLE_EXAMPLE_TESTS "Run extra example tests. Requires GNU Sed. Ignored if NetCDF-4 is not Enabled")
|
||||
IF(NOT ENABLE_NETCDF_4 AND ENABLE_EXAMPLE_TESTS)
|
||||
SET (ENABLE_EXAMPLE_TESTS OFF)
|
||||
ENDIF()
|
||||
|
||||
OPTION (ENABLE_PARALLEL_TESTS "Enable Parallel IO Tests. Ignored if NetCDF4 is not enabled, or if there is no parallel I/O Support." OFF)
|
||||
|
||||
|
||||
# Set some of the options as advanced.
|
||||
MARK_AS_ADVANCED(ENABLE_DOXYGEN ENABLE_INTERNAL_DOCS VALGRIND_TESTS ENABLE_PNETCDF BUILD_CDMREMOTE ENABLE_COVERAGE_TESTS)
|
||||
|
||||
@ -311,9 +337,9 @@ CHECK_FUNCTION_EXISTS(getrlimit HAVE_GETRLIMIT)
|
||||
|
||||
# Check for the math library so it can be explicitely linked.
|
||||
IF(NOT WIN32)
|
||||
FIND_LIBRARY(MMATH NAMES math m libm)
|
||||
MESSAGE(STATUS "Found Math library: ${MMATH}")
|
||||
IF(NOT MMATH)
|
||||
FIND_LIBRARY(HAVE_LIBM NAMES math m libm)
|
||||
MESSAGE(STATUS "Found Math library: ${HAVE_LIBM}")
|
||||
IF(NOT HAVE_LIBM)
|
||||
MESSAGE(FATAL_ERROR "Unable to find the math library.")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
@ -24,7 +24,10 @@
|
||||
#cmakedefine ENABLE_INTERNAL_DOCS 1
|
||||
#cmakedefine VALGRIND_TESTS 1
|
||||
#cmakedefine ENABLE_CDMREMOTE 1
|
||||
#cmakedefine USE_DAP 1
|
||||
#cmakedefine ENABLE_DAP 1
|
||||
#cmakedefine ENABLE_DAP_GROUPS 1
|
||||
#cmakedefine ENABLE_DAP_REMOTE_TESTS 1
|
||||
#cmakedefine EXTRA_TESTS
|
||||
#cmakedefine USE_NETCDF4 1
|
||||
#cmakedefine USE_HDF4 1
|
||||
#cmakedefine USE_HDF5 1
|
||||
@ -33,6 +36,15 @@
|
||||
#cmakedefine USE_PARALLEL_MPIO 1
|
||||
#cmakedefine USE_PARALLEL 1
|
||||
#cmakedefine USE_PNETCDF 1
|
||||
|
||||
|
||||
#cmakedefine HAVE_CURLOPT_KEYPASSWD
|
||||
#cmakedefine HAVE_DECL_ISFINITE 1
|
||||
#cmakedefine HAVE_DECL_ISNAN 1
|
||||
#cmakedefine HAVE_DECL_SIGNBIT 1
|
||||
#cmakedefine HAVE_DOPRNT
|
||||
|
||||
|
||||
/* Define to 1 if you have the <alloca.h> header file. */
|
||||
#cmakedefine HAVE_ALLOCA_H @HAVE_ALLOCA_H@
|
||||
|
||||
@ -170,11 +182,20 @@
|
||||
#cmakedefine HAVE_GETRLIMIT
|
||||
#cmakedefine HAVE_FSYNC
|
||||
|
||||
#cmakedefine HAVE_H5PGET_FAPL_MPIPOSIX 1
|
||||
#cmakedefine HAVE_H5PSET_DEFLATE
|
||||
#cmakedefine HAVE_H5Z_SZIP
|
||||
|
||||
|
||||
/* Specifies if various libraries are present. */
|
||||
#cmakedefine HAVE_LIBM 1
|
||||
|
||||
/* Define to 1 if the system has the type `uchar'.*/
|
||||
#cmakedefine HAVE_UCHAR
|
||||
|
||||
/* Misc defines copied from autotools config.h.in */
|
||||
#cmakedefine CRAY_STACKSEG_END
|
||||
#cmakedefine DLL_EXPORT
|
||||
|
||||
#include <ncconfigure.h>
|
||||
#endif
|
||||
|
@ -31,7 +31,7 @@ ADD_LIBRARY(netcdf stub.c ${LARGS} )
|
||||
# Add dependencies required for linking.
|
||||
#####
|
||||
|
||||
TARGET_LINK_LIBRARIES(netcdf ${MMATH})
|
||||
TARGET_LINK_LIBRARIES(netcdf ${HAVE_LIBM})
|
||||
|
||||
IF(USE_DAP)
|
||||
TARGET_LINK_LIBRARIES(netcdf ${CURL_LIBRARIES})
|
||||
|
@ -4,6 +4,9 @@ INCLUDE_DIRECTORIES(".")
|
||||
|
||||
SET(ncgen3_FILES main.c load.c escapes.c getfill.c init.c genlib.c ncgentab.c)
|
||||
|
||||
FILE(GLOB COPY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.nc ${CMAKE_CURRENT_SOURCE_DIR}/*.sh ${CMAKE_CURRENT_SOURCE_DIR}/*.cdl)
|
||||
FILE(COPY ${COPY_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/ FILE_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ncgentab.c ${CMAKE_CURRENT_SOURCE_DIR}/ncgentab.h
|
||||
COMMAND bison -pncg -d ${NetCDF_SOURCE_DIR}/ncgen3/ncgen.y
|
||||
@ -16,4 +19,15 @@ ADD_EXECUTABLE(ncgen3 ${ncgen3_FILES})
|
||||
|
||||
TARGET_LINK_LIBRARIES(ncgen3 netcdf)
|
||||
|
||||
IF(ENABLE_TESTS)
|
||||
SET(NCGEN3_TESTS run_tests)
|
||||
IF(USE_NETCDF4)
|
||||
SET(NCGEN3_TESTS ${NCGEN3_TESTS} run_nc4_tests)
|
||||
ENDIF()
|
||||
|
||||
FOREACH(F ${NCGEN3_TESTS})
|
||||
ADD_TEST(ncgen3_${F} sh ${CMAKE_CURRENT_BINARY_DIR}/${F}.sh)
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
|
||||
INSTALL(TARGETS ncgen3 DESTINATION bin)
|
||||
|
@ -1,6 +1,18 @@
|
||||
#!/bin/sh
|
||||
# This shell script runs the ncdump tests.
|
||||
# $Id: run_nc4_tests.sh,v 1.3 2009/09/24 18:19:10 dmh Exp $
|
||||
srcdir=`dirname $0`
|
||||
cd $srcdir
|
||||
srcdir=`pwd`
|
||||
|
||||
# compute the build directory
|
||||
builddir=`pwd`/..
|
||||
# Hack for CYGWIN
|
||||
cd $srcdir
|
||||
if [ `uname | cut -d "_" -f 1` = "MINGW32" ]; then
|
||||
srcdir=`pwd | sed 's/\/c\//c:\//g'`
|
||||
builddir="$srcdir"/..
|
||||
fi
|
||||
|
||||
echo "*** Testing ncgen3 for netCDF-4."
|
||||
set -e
|
||||
|
@ -1,7 +1,18 @@
|
||||
#!/bin/sh
|
||||
# This shell script runs the ncgen3 tests.
|
||||
# $Id: run_tests.sh,v 1.9 2009/09/24 18:19:11 dmh Exp $
|
||||
srcdir=`dirname $0`
|
||||
cd $srcdir
|
||||
srcdir=`pwd`
|
||||
|
||||
# compute the build directory
|
||||
builddir=`pwd`/..
|
||||
# Hack for CYGWIN
|
||||
cd $srcdir
|
||||
if [ `uname | cut -d "_" -f 1` = "MINGW32" ]; then
|
||||
srcdir=`pwd | sed 's/\/c\//c:\//g'`
|
||||
builddir="$srcdir"/..
|
||||
fi
|
||||
echo "*** Testing ncgen3."
|
||||
set -e
|
||||
echo "*** creating classic file c0.nc from c0.cdl..."
|
||||
|
@ -37,16 +37,10 @@ fi
|
||||
BUILDTYPE='-DBUILD_SHARED_LIBS=OFF -DBUILD_SHARED_LIBS=ON'
|
||||
HDF5OPS='-DUSE_HDF5=OFF -DUSE_HDF5=ON'
|
||||
DAPOPS='-DBUILD_DAP=OFF -DBUILD_DAP=ON'
|
||||
DISKLESSOPS='-DBUILD_DISKLESS=OFF -DBUILD_DISKLESS=ON'
|
||||
DISKLESSOPS='-DENABLE_DISKLESS=OFF -DENABLE_DISKLESS=ON'
|
||||
CDMROPS='-DENABLE_CDMREMOTE=OFF -DENABLE_CDMREMOTE=ON'
|
||||
|
||||
|
||||
DOXOPS='-DENABLE_DOXYGEN=OFF -DENABLE_DOXYGEN=ON'
|
||||
INTOPS='-DENABLE_INTERNAL_DOCS=OFF -DENABLE_INTERNAL_DOCS=ON'
|
||||
FSYOPS='-DUSE_FSYNC=OFF -DUSE_FSYNC=ON'
|
||||
VALOPS='-DVALGRIND_TESTS=OFF -DVALGRIND_TESTS=ON'
|
||||
NC4OPS='-DENABLE_NETCDF_4=OFF -DENABLE_NETCDF_4=ON'
|
||||
|
||||
|
||||
|
||||
# Track configs which configurations fail.
|
||||
|
Loading…
x
Reference in New Issue
Block a user