From 720e0c7623be9847867b9d857329ab626ee8f3e8 Mon Sep 17 00:00:00 2001 From: Vailin Choi Date: Tue, 10 Jun 2014 11:22:12 -0500 Subject: [svn-r25250] Bring revisions #24670 - $24698 from trunk to revise_chunks. Tested on jam, koala, ostrich, platypus. --- README.txt | 2 +- c++/src/CMakeLists.txt | 5 +- c++/src/Makefile.in | 2 +- config/lt_vers.am | 2 +- configure | 22 +-- configure.ac | 2 +- fortran/src/CMakeLists.txt | 7 +- fortran/src/HDF5mpio.f90 | 1 + fortran/src/Makefile.in | 2 +- hl/c++/src/CMakeLists.txt | 5 +- hl/c++/src/Makefile.in | 2 +- hl/fortran/src/Makefile.in | 2 +- hl/src/Makefile.in | 2 +- release_docs/INSTALL_CMake.txt | 313 ++++++++++++++++++++++++++--------------- release_docs/RELEASE.txt | 2 +- src/CMakeLists.txt | 5 +- src/H5R.c | 13 +- src/H5public.h | 4 +- src/Makefile.in | 2 +- test/getname.c | 15 +- test/trefer.c | 4 +- tools/lib/CMakeLists.txt | 5 +- vms/src/h5pubconf.h | 6 +- 23 files changed, 267 insertions(+), 158 deletions(-) diff --git a/README.txt b/README.txt index 98e9a16..7fc8d8d 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.170-swmr0 currently under development +HDF5 version 1.9.172-swmr0 currently under development Please refer to the release_docs/INSTALL file for installation instructions. ------------------------------------------------------------------------------ diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt index e7ae371..af6283a 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -106,8 +106,9 @@ INSTALL ( # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- IF (HDF5_EXPORTED_TARGETS) - - INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} cpplibraries) + IF (BUILD_SHARED_LIBS) + INSTALL_TARGET_PDB (${HDF5_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} cpplibraries) + ENDIF (BUILD_SHARED_LIBS) INSTALL ( TARGETS diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index ef8094d..8f303f3 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -469,7 +469,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 # Include src directory diff --git a/config/lt_vers.am b/config/lt_vers.am index 7dd12cc..390a8f4 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -17,7 +17,7 @@ # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 ## If the API changes *at all*, increment LT_VERS_INTERFACE and diff --git a/configure b/configure index 913c065..abc90b9 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh # From configure.ac Id: configure.ac 22697 2012-08-19 14:35:47Z hdftest . # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HDF5 1.9.170-swmr0. +# Generated by GNU Autoconf 2.69 for HDF5 1.9.172-swmr0. # # Report bugs to . # @@ -591,8 +591,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HDF5' PACKAGE_TARNAME='hdf5' -PACKAGE_VERSION='1.9.170-swmr0' -PACKAGE_STRING='HDF5 1.9.170-swmr0' +PACKAGE_VERSION='1.9.172-swmr0' +PACKAGE_STRING='HDF5 1.9.172-swmr0' PACKAGE_BUGREPORT='help@hdfgroup.org' PACKAGE_URL='' @@ -1492,7 +1492,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HDF5 1.9.170-swmr0 to adapt to many kinds of systems. +\`configure' configures HDF5 1.9.172-swmr0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1562,7 +1562,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HDF5 1.9.170-swmr0:";; + short | recursive ) echo "Configuration of HDF5 1.9.172-swmr0:";; esac cat <<\_ACEOF @@ -1761,7 +1761,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HDF5 configure 1.9.170-swmr0 +HDF5 configure 1.9.172-swmr0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2855,7 +2855,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HDF5 $as_me 1.9.170-swmr0, which was +It was created by HDF5 $as_me 1.9.172-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3687,7 +3687,7 @@ fi # Define the identity of the package. PACKAGE='hdf5' - VERSION='1.9.170-swmr0' + VERSION='1.9.172-swmr0' cat >>confdefs.h <<_ACEOF @@ -31676,7 +31676,7 @@ Usage: $0 [OPTIONS] Report bugs to ." lt_cl_version="\ -HDF5 config.lt 1.9.170-swmr0 +HDF5 config.lt 1.9.172-swmr0 configured by $0, generated by GNU Autoconf 2.69. Copyright (C) 2011 Free Software Foundation, Inc. @@ -33814,7 +33814,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HDF5 $as_me 1.9.170-swmr0, which was +This file was extended by HDF5 $as_me 1.9.172-swmr0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -33880,7 +33880,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HDF5 config.status 1.9.170-swmr0 +HDF5 config.status 1.9.172-swmr0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 6c46048..33bd4e9 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.9.170-swmr0], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.9.172-swmr0], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADER([src/H5config.h]) diff --git a/fortran/src/CMakeLists.txt b/fortran/src/CMakeLists.txt index 5d8c2d5..b040fd1 100644 --- a/fortran/src/CMakeLists.txt +++ b/fortran/src/CMakeLists.txt @@ -284,9 +284,10 @@ ENDIF (WIN32 AND NOT CYGWIN) # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- IF (HDF5_EXPORTED_TARGETS) - - INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) - #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) + IF (BUILD_SHARED_LIBS) + INSTALL_TARGET_PDB (${HDF5_F90_C_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) + #INSTALL_TARGET_PDB (${HDF5_F90_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} fortlibraries) + ENDIF (BUILD_SHARED_LIBS) INSTALL ( TARGETS diff --git a/fortran/src/HDF5mpio.f90 b/fortran/src/HDF5mpio.f90 index ac4d2b1..b8fb645 100644 --- a/fortran/src/HDF5mpio.f90 +++ b/fortran/src/HDF5mpio.f90 @@ -28,6 +28,7 @@ MODULE HDF5 USE H5GLOBAL USE H5F + USE H5F_PROVISIONAL USE H5G USE H5E USE H5E_PROVISIONAL diff --git a/fortran/src/Makefile.in b/fortran/src/Makefile.in index 61f729d..0a2f8c5 100644 --- a/fortran/src/Makefile.in +++ b/fortran/src/Makefile.in @@ -520,7 +520,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 # Include src directory in both Fortran and C flags (C compiler is used diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt index aa54889..34e1a7a 100644 --- a/hl/c++/src/CMakeLists.txt +++ b/hl/c++/src/CMakeLists.txt @@ -37,8 +37,9 @@ INSTALL ( # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- IF (HDF5_EXPORTED_TARGETS) - - INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries) + IF (BUILD_SHARED_LIBS) + INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries) + ENDIF (BUILD_SHARED_LIBS) INSTALL ( TARGETS diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in index 3d28ac9..2a0040c 100644 --- a/hl/c++/src/Makefile.in +++ b/hl/c++/src/Makefile.in @@ -460,7 +460,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 # Include src directory diff --git a/hl/fortran/src/Makefile.in b/hl/fortran/src/Makefile.in index e1a3206..7aa93cc2 100644 --- a/hl/fortran/src/Makefile.in +++ b/hl/fortran/src/Makefile.in @@ -476,7 +476,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/hl/src -I$(top_builddir)/hl/src \ -I$(top_srcdir)/fortran/src -I$(top_builddir)/fortran/src diff --git a/hl/src/Makefile.in b/hl/src/Makefile.in index 13daa39..29cd2f2 100644 --- a/hl/src/Makefile.in +++ b/hl/src/Makefile.in @@ -459,7 +459,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 # This library is our main target. diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt index d431644..438d7e2 100644 --- a/release_docs/INSTALL_CMake.txt +++ b/release_docs/INSTALL_CMake.txt @@ -4,23 +4,76 @@ Table of Contents -Section I: Quick Step Building HDF5 Libraries with CMake -Section II: Preconditions -Section III: Building HDF5 C/C++ Libraries with CMake -Section IV: All Options for HDF5 C/C++ Libraries with CMake -Section V: User Defined Options for HDF5 Libraries with CMake -Section VI: APPENDIX +Section I: Quick Step Building HDF5 Libraries with CMake Script Mode +Section II: Quick Step Building HDF5 Libraries with CMake Command Mode +Section III: Preconditions +Section IV: Building HDF5 C/C++ Libraries with CMake +Section V: All Options for HDF5 C/C++ Libraries with CMake +Section VI: User Defined Options for HDF5 Libraries with CMake +Section VII: APPENDIX ************************************************************************ ======================================================================== -I. Quick Step Building HDF5 Libraries with CMake +I. Quick Step Building HDF5 Libraries with CMake Script Mode +======================================================================== +This short set of instructions is written for users who want to quickly +build the HDF5 Library and tools from the HDF5 source code package +using the CMake tools. HDF Group recommends using a ctest script to build +HDF5. + +To build HDF5 with the SZIP and ZLIB external libraries you will need to: + + 1. Create a directory for your development; myhdfstuff. + + 2. Create a directory for the HDF5 source; hdf5-1.8 in myhdfstuff. + + 3. Download the SZip.tar.gz and ZLib.tar.gz to your development directory, + (See Section VII: APPENDIX for instructions). Both are needed if + building with external libraries; do not uncompress them. + + 4. Download or create the CTestScript.cmake file in your development + directory, (See Section VII: APPENDIX for instructions and an example). + + 5. Download or create a platform configuration file in your development + directory, (See Section VII: APPENDIX for instructions and an example). + This file calls CTestScript.cmake; the platform configuration file can + be modified. CTestScript.cmake file should not be modified. + + 6. From your development directory execute the CTest Script with the + following options: + + ctest -S , -C RelWithDebInfo -VV -O hdf5.log + + 7. This will create an install package in the myhdfstuff/hdf5-1.8/build folder. + + Where: + "configuration file" is the platform configuration file from step6; + HDF518WindowsRWDICMake.cmake, HDF518LinuxRWDICMake.cmake, or + HDF518MacRWDICMake.cmake can be downloaded from the HDF Group website. + "hdf5src" is the uncompressed HDF5 source code directory. No path + should be specified. + + The -S option uses the script version of ctest. + + The value for the -C option (as shown above, "-C RelWithDebInfo") must + match the setting for CTEST_BUILD_CONFIGURATION in the platform + configuration file. + + The -VV option is for verbose; Use -V for less verbose. + + The "-O hdf5.log" option saves the output to a log file hdf5.log. + + + +======================================================================== +II. Quick Step Building HDF5 Libraries with CMake ======================================================================== Notes: This short set of instructions is written for users who want to quickly build the HDF5 Library and tools from the HDF5 source code - package using the CMake tools. + package using the CMake command line tools. A. Windows Quick Step Building HDF5 Libraries with CMake Using VS2010 @@ -37,6 +90,7 @@ Notes: This short set of instructions is written for users who want to 4. Configure the C library, tools and tests with this command: cmake -G "Visual Studio 10" -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON .. + The two dots on the end of the command is the location of the source. 5. Build the C library, tools and tests with this command: cmake --build . --config Release @@ -55,16 +109,17 @@ Notes: This short set of instructions is written for users who want to Go through these steps: 1. Locate the source files in: - ~\MyHDFstuff\hdf5 + ~/MyHDFstuff/hdf5 2. Create a build folder at: - ~\MyHDFstuff\hdf5\build + ~/MyHDFstuff/hdf5/build 3. Open a command prompt at: - ~\MyHDFstuff\hdf5\build + ~/MyHDFstuff/hdf5/build 4. Configure the C library, tools and tests with this command: cmake -G "Unix Makefiles" -DBUILD_TESTING:BOOL=ON -DHDF5_BUILD_TOOLS:BOOL=ON .. + The two dots on the end of the command is the location of the source. 5. Build the C library, tools and tests with this command: cmake --build . --config Release @@ -82,14 +137,14 @@ Notes: This short set of instructions is written for users who want to ======================================================================== -II. Preconditions +III. Preconditions ======================================================================== 1. We suggest you obtain the latest CMake for windows from the Kitware web site. The HDF5 1.8.x product requires a minimum CMake version 2.8.10. 2. If you plan to use Zlib or Szip: - A. Download the packages and install them in a central location. + A. Download the binary packages and install them in a central location. For example on Windows, create a folder extlibs and install the packages there. B. Use source packages from an SVN server by adding the following CMake @@ -121,7 +176,7 @@ II. Preconditions Visual Studio Express users will not be able to package HDF5 into an install image executable. - 5. Developers should copy the config/cmake/cacheinit.cmake file and alter the + 5. Developers can copy the config/cmake/cacheinit.cmake file and alter the the settings for the developers' environment. Then the only options needed on the command line are those options that are different. Example using HDF default cache file: @@ -162,7 +217,7 @@ Notes: CMake in General ======================================================================== -III. Building HDF5 C/C++ Libraries with CMake +IV. Building HDF5 C/C++ Libraries with CMake ======================================================================== To build the HDF5 C/C++ Libraries with CMake, go through these five steps: @@ -192,7 +247,7 @@ These five steps are described in detail below. then use c:\MyHDFstuff\hdf5\build or c:\MyHDFstuff\build\hdf5 as the build directory. - PREFERRED: + RECOMMENDED: Users can perform the configuration step without using the visual cmake-gui program. We use the file cacheinit.cmake in the config/cmake folder for our testing. This file enables all the @@ -389,7 +444,7 @@ These five steps are described in detail below. ======================================================================== -IV. All Options for HDF5 C/C++ Libraries with CMake +V. All Options for HDF5 C/C++ Libraries with CMake ======================================================================== In the options listed below, there are three columns of information: @@ -465,7 +520,7 @@ ENDIF (WINDOWS) ======================================================================== -V. User Defined Options for HDF5 Libraries with CMake +VI. User Defined Options for HDF5 Libraries with CMake ======================================================================== Support for User Defined macros and options has been added. The file @@ -478,7 +533,7 @@ UserMacros.cmake file. Then enable the option to the CMake configuration, build and test process. ======================================================================== -VI. APPENDIX +VII. APPENDIX ======================================================================== Below are examples of the ctest scripts used by The HDF Group. @@ -552,7 +607,7 @@ else(NOT SITE_OS_NAME) endif(CMAKE_HOST_UNIX) if(SITE_BUILDNAME_SUFFIX) set(CTEST_BUILD_NAME ${CTEST_BUILD_NAME}-${SITE_BUILDNAME_SUFFIX}) - endif() + endif(SITE_BUILDNAME_SUFFIX) set(BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DSITE:STRING=${CTEST_SITE} -DBUILDNAME:STRING=${CTEST_BUILD_NAME}") endif(NOT SITE_OS_NAME) @@ -563,10 +618,16 @@ if(APPLE) # Compiler choice execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE XCODE_CC OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE XCODE_CXX OUTPUT_STRIP_TRAILING_WHITESPACE) - SET(ENV{CC} "${XCODE_CC}") - SET(ENV{CXX} "${XCODE_CXX}") - # Shared fortran is not supported, build static - set (BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") + set(ENV{CC} "${XCODE_CC}") + set(ENV{CXX} "${XCODE_CXX}") + + if(NOT NO_MAC_FORTRAN) + # Shared fortran is not supported, build static + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC") + else(NOT NO_MAC_FORTRAN) + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF5_BUILD_FORTRAN:BOOL=OFF") + endif(NOT NO_MAC_FORTRAN) + set(BUILD_OPTIONS "${BUILD_OPTIONS} -DCTEST_USE_LAUNCHERS:BOOL=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF") endif(APPLE) @@ -583,7 +644,7 @@ endif(NOT SITE_CYGWIN}) #----------------------------------------------------------------------------- set(NEED_REPOSITORY_CHECKOUT 0) set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"") -if (CTEST_USE_TAR_SOURCE) +if(CTEST_USE_TAR_SOURCE) ## Uncompress source if tar file provided ## -------------------------- if(WIN32) @@ -603,20 +664,20 @@ if (CTEST_USE_TAR_SOURCE) file(RENAME ${CTEST_USE_TAR_SOURCE} ${CTEST_SOURCE_DIRECTORY}) set(LOCAL_SKIP_UPDATE "TRUE") -else (CTEST_USE_TAR_SOURCE) +else(CTEST_USE_TAR_SOURCE) ## use subversion to get source ## -------------------------- - if (NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") - set (NEED_REPOSITORY_CHECKOUT 1) - endif (NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") + if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") + set(NEED_REPOSITORY_CHECKOUT 1) + endif(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") - if (${NEED_REPOSITORY_CHECKOUT}) - set (CTEST_CHECKOUT_COMMAND + if(${NEED_REPOSITORY_CHECKOUT}) + set(CTEST_CHECKOUT_COMMAND "${CTEST_UPDATE_COMMAND} co ${REPOSITORY_URL} \"${CTEST_SOURCE_DIRECTORY}\" -r HEAD") - else (${NEED_REPOSITORY_CHECKOUT}) - set (CTEST_CHECKOUT_COMMAND "${CTEST_UPDATE_COMMAND} update") - endif (${NEED_REPOSITORY_CHECKOUT}) -endif (CTEST_USE_TAR_SOURCE) + else(${NEED_REPOSITORY_CHECKOUT}) + set(CTEST_CHECKOUT_COMMAND "${CTEST_UPDATE_COMMAND} update") + endif(${NEED_REPOSITORY_CHECKOUT}) +endif(CTEST_USE_TAR_SOURCE) #----------------------------------------------------------------------------- ## Clear the build directory @@ -718,62 +779,69 @@ endforeach(v) message("Dashboard script configuration:\n${vars}\n") #----------------------------------------------------------------------------- -## NORMAL process -## -- LOCAL_UPDATE updates the source folder from svn -## -- LOCAL_SUBMIT reports to CDash server -## -- LOCAL_SKIP_TEST skips the test process (only builds) -## -- LOCAL_MEMCHECK_TEST executes the Valgrind testing -## -- LOCAL_COVERAGE_TEST executes code coverage process -## -------------------------- -CTEST_START (${MODEL} TRACK ${MODEL}) -if(LOCAL_UPDATE) - CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}") -endif(LOCAL_UPDATE) -CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}") -CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}") -if(LOCAL_SUBMIT) - CTEST_SUBMIT (PARTS Update Configure Notes) -endif(LOCAL_SUBMIT) - CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) -if(LOCAL_SUBMIT) - CTEST_SUBMIT (PARTS Build) -endif(LOCAL_SUBMIT) -if(NOT LOCAL_SKIP_TEST) - if(NOT LOCAL_MEMCHECK_TEST) - CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args}) - if(LOCAL_SUBMIT) - CTEST_SUBMIT (PARTS Test) - endif(LOCAL_SUBMIT) - else(NOT LOCAL_MEMCHECK_TEST) - CTEST_MEMCHECK (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args}) - if(LOCAL_SUBMIT) - CTEST_SUBMIT (PARTS MemCheck) - endif(LOCAL_SUBMIT) - endif(NOT LOCAL_MEMCHECK_TEST) - if(LOCAL_COVERAGE_TEST) - CTEST_COVERAGE (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) - if(LOCAL_SUBMIT) - CTEST_SUBMIT (PARTS Coverage) - endif(LOCAL_SUBMIT) - endif(LOCAL_COVERAGE_TEST) -endif(NOT LOCAL_SKIP_TEST) -if(NOT LOCAL_MEMCHECK_TEST) - ##----------------------------------------------- - ## Package the product - ##----------------------------------------------- - execute_process(COMMAND cpack -C ${CTEST_BUILD_CONFIGURATION} -V - WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY} - RESULT_VARIABLE cpackResult - OUTPUT_VARIABLE cpackLog - ERROR_VARIABLE cpackLog.err - ) - file(WRITE ${CTEST_BINARY_DIRECTORY}/cpack.log "${cpackLog.err}" "${cpackLog}") -endif(NOT LOCAL_MEMCHECK_TEST) #----------------------------------------------------------------------------- + ## NORMAL process + ## -- LOCAL_UPDATE updates the source folder from svn + ## -- LOCAL_SUBMIT reports to CDash server + ## -- LOCAL_SKIP_TEST skips the test process (only builds) + ## -- LOCAL_MEMCHECK_TEST executes the Valgrind testing + ## -- LOCAL_COVERAGE_TEST executes code coverage process + ## -------------------------- + CTEST_START (${MODEL} TRACK ${MODEL}) + if(LOCAL_UPDATE) + CTEST_UPDATE (SOURCE "${CTEST_SOURCE_DIRECTORY}") + endif(LOCAL_UPDATE) + CTEST_CONFIGURE (BUILD "${CTEST_BINARY_DIRECTORY}") + CTEST_READ_CUSTOM_FILES ("${CTEST_BINARY_DIRECTORY}") + if(LOCAL_SUBMIT) + CTEST_SUBMIT (PARTS Update Configure Notes) + endif(LOCAL_SUBMIT) + CTEST_BUILD (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) + if(LOCAL_SUBMIT) + CTEST_SUBMIT (PARTS Build) + endif(LOCAL_SUBMIT) + if(NOT LOCAL_SKIP_TEST) + if(NOT LOCAL_MEMCHECK_TEST) + CTEST_TEST (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res) + if(LOCAL_SUBMIT) + CTEST_SUBMIT (PARTS Test) + endif(LOCAL_SUBMIT) + if(res GREATER 0) + message(FATAL_ERROR "Failed tests: ${res}\n") + endif(res GREATER 0) + else(NOT LOCAL_MEMCHECK_TEST) + CTEST_MEMCHECK (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args}) + if(LOCAL_SUBMIT) + CTEST_SUBMIT (PARTS MemCheck) + endif(LOCAL_SUBMIT) + endif(NOT LOCAL_MEMCHECK_TEST) + if(LOCAL_COVERAGE_TEST) + CTEST_COVERAGE (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND) + if(LOCAL_SUBMIT) + CTEST_SUBMIT (PARTS Coverage) + endif(LOCAL_SUBMIT) + endif(LOCAL_COVERAGE_TEST) + endif(NOT LOCAL_SKIP_TEST) + if(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE) + ##----------------------------------------------- + ## Package the product + ##----------------------------------------------- + execute_process(COMMAND cpack -C ${CTEST_BUILD_CONFIGURATION} -V + WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY} + RESULT_VARIABLE cpackResult + OUTPUT_VARIABLE cpackLog + ERROR_VARIABLE cpackLog.err + ) + file(WRITE ${CTEST_BINARY_DIRECTORY}/cpack.log "${cpackLog.err}" "${cpackLog}") + if(cpackResult GREATER 0) + message(FATAL_ERROR "Failed packaging: ${cpackResult}\n") + endif(cpackResult GREATER 0) + endif(NOT LOCAL_MEMCHECK_TEST AND NOT LOCAL_NO_PACKAGE) +#----------------------------------------------------------------------------- + message("DONE:CTestScript") - ======================================================================== ctest ======================================================================== @@ -791,46 +859,61 @@ and the build folder is created as a sub-folder. # "ctest -S HDF518Static.cmake,hdf518 -C Release -O hdf518static.log" # where hdf518 is the source folder relative to the location of these scripts ############################################################################ - cmake_minimum_required(VERSION 2.8.10 FATAL_ERROR) - -# CTEST_SCRIPT_ARG is the source folder passed on the command line -set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY}) set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG}) -set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/buildstatic) +set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build) +set(CTEST_DASHBOARD_ROOT "${CTEST_SCRIPT_DIRECTORY}") set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}") set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}") -set(CTEST_BUILD_CONFIGURATION "Release") set(MODEL "Experimental") -# build generator name, see cmake generator list +####### Following Line is one of [Release, RelWithDebInfo, Debug] ############# +set(CTEST_BUILD_CONFIGURATION "RelWithDebInfo") +######### Following describes computer ############ set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -# machine description, can be removed on linux -set(CTEST_SITE "machine.domain") -set(SITE_OS_NAME "os name") -set(SITE_OS_VERSION "os version") -set(SITE_OS_BITS "os size") -set(SITE_COMPILER_NAME "compiler name") -set(SITE_COMPILER_VERSION "compiler version") - -# extra CDash build name description -set(SITE_BUILDNAME_SUFFIX "STATIC") - -# needed for source updates, change as required +## Set the following to unique id your computer ## +set(CTEST_SITE "LINUX.XXXX") +## following is optional to describe build ## +set(SITE_BUILDNAME_SUFFIX "RWDI-SHARED") +#################################################### + +##### Following controls CDash submission ##### +#set(LOCAL_SUBMIT "TRUE") +##### Following controls test process ##### +#set(LOCAL_SKIP_TEST "TRUE") +#set(LOCAL_MEMCHECK_TEST "TRUE") +#set(LOCAL_COVERAGE_TEST "TRUE") +##### Following controls cpack command ##### +set(LOCAL_NO_PACKAGE "TRUE") +##### Following controls source update ##### +#set(LOCAL_UPDATE "TRUE") set(REPOSITORY_URL "http://svn.hdfgroup.uiuc.edu/hdf5/branches/hdf5_1_8") +#uncomment to use a compressed source file *.zip +#set(CTEST_USE_TAR_SOURCE "hdf5-1.8.12") +############################################ + +#### Change default configuration of options in config/cmake/cacheinit.cmake file ### +### uncomment and change the following line for more configuration options +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DXXX:XXX=XXX") +### uncomment the following line to build static libraries +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF") +### ext libs from svn +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=SVN") +### ext libs from tgz for 1.8.12 and after +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZPATH:PATH=${CTEST_SCRIPT_DIRECTORY}") +### ext libs from tgz for 1.8.11 and before +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS}-DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=TGZ -DTGZ_PATH:PATH=${CTEST_SCRIPT_DIRECTORY}") +### Create install package with external libraries (szip, zlib) +set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") +### disable test program builds +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_TESTING:BOOL=OFF") +### disable packaging +#set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON") +############################################ -# options to add/change from the cacheinit.cmake in the config/cmake folder -set(ADD_BUILD_OPTIONS "-DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/hdf5.1.8_static") -set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_ANSI_CFLAGS:STRING=-fPIC -DHDF5_PACKAGE_EXTLIBS:BOOL=ON") -set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING=\"SVN\"") - -# include common script file include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake) -message("DONE") - - ======================================================================== For further assistance, send email to help@hdfgroup.org diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index adec8f8..bb124eb 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.9.170-swmr0 currently under development +HDF5 version 1.9.172-swmr0 currently under development INTRODUCTION diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbd02e0..3ec7d7c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -879,8 +879,9 @@ ENDIF (NOT HDF5_INSTALL_NO_DEVELOPMENT) # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- IF (HDF5_EXPORTED_TARGETS) - - INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} libraries) + IF (BUILD_SHARED_LIBS) + INSTALL_TARGET_PDB (${HDF5_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} libraries) + ENDIF (BUILD_SHARED_LIBS) INSTALL ( TARGETS diff --git a/src/H5R.c b/src/H5R.c index 97b6f61..95d8548 100644 --- a/src/H5R.c +++ b/src/H5R.c @@ -894,7 +894,6 @@ H5R_get_name(H5F_t *f, hid_t lapl_id, hid_t dxpl_id, hid_t id, H5R_type_t ref_ty /* Check args */ HDassert(f); HDassert(_ref); - HDassert(name); /* Initialize the object location */ H5O_loc_reset(&oloc); @@ -965,8 +964,10 @@ done: object that the dataset is located within. H5R_type_t ref_type; IN: Type of reference void *ref; IN: Reference to query. - char *name; OUT: Buffer to place name of object referenced - size_t size; IN: Size of name buffer + char *name; OUT: Buffer to place name of object referenced. If NULL + then this call will return the size in bytes of name. + size_t size; IN: Size of name buffer (user needs to include NULL terminator + when passing in the size) RETURNS Non-negative length of the path on success, Negative on failure @@ -978,6 +979,12 @@ done: This may not be the only path to that object. EXAMPLES REVISION LOG + M. Scot Breitenfeld + 22 January 2014 + Changed the behavior for the returned value of the function when name is NULL. + If name is NULL then size is ignored and the function returns the size + of the name buffer (not including the NULL terminator), it still returns + negative on failure. --------------------------------------------------------------------------*/ ssize_t H5Rget_name(hid_t id, H5R_type_t ref_type, const void *_ref, char *name, diff --git a/src/H5public.h b/src/H5public.h index e8657cc..6491ebf 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -75,10 +75,10 @@ extern "C" { /* Version numbers */ #define H5_VERS_MAJOR 1 /* For major interface/format changes */ #define H5_VERS_MINOR 9 /* For minor interface/format changes */ -#define H5_VERS_RELEASE 170 /* For tweaks, bug-fixes, or development */ +#define H5_VERS_RELEASE 172 /* For tweaks, bug-fixes, or development */ #define H5_VERS_SUBRELEASE "swmr0" /* For pre-releases like snap0 */ /* Empty string for real releases. */ -#define H5_VERS_INFO "HDF5 library version: 1.9.170-swmr0" /* Full version string */ +#define H5_VERS_INFO "HDF5 library version: 1.9.172-swmr0" /* Full version string */ #define H5check() H5check_version(H5_VERS_MAJOR,H5_VERS_MINOR, \ H5_VERS_RELEASE) diff --git a/src/Makefile.in b/src/Makefile.in index 9da91c1..f6e52c6 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -523,7 +523,7 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog # Add libtool shared library version numbers to the HDF5 library # See libtool versioning documentation online. LT_VERS_INTERFACE = 6 -LT_VERS_REVISION = 160 +LT_VERS_REVISION = 162 LT_VERS_AGE = 0 # Our main target, the HDF5 library diff --git a/test/getname.c b/test/getname.c index fbad220..31440d6 100644 --- a/test/getname.c +++ b/test/getname.c @@ -2524,6 +2524,14 @@ test_obj_ref(hid_t fapl) if(H5Dclose(dataset2) < 0) FAIL_STACK_ERROR if(!((HDstrcmp(buf, "/Dataset3") == 0) &&(i == 9))) TEST_ERROR *buf = '\0'; + + /* Check H5Rget_name returns the correct length of the name when name is NULL */ + i = H5Rget_name(dataset, H5R_OBJECT, &wbuf[0], NULL, 0); + if(i != 9) TEST_ERROR + /* Make sure size parameter is ignored */ + i = H5Rget_name(dataset, H5R_OBJECT, &wbuf[0], NULL, 200); + if(i != 9) TEST_ERROR + i = H5Rget_name(dataset, H5R_OBJECT, &wbuf[0], (char*)buf, sizeof(buf)); if(!((HDstrcmp(buf, "/Dataset3") == 0) &&(i == 9))) TEST_ERROR PASSED() @@ -2761,7 +2769,12 @@ test_reg_ref(hid_t fapl) /* Get name of the dataset the first region reference points to using H5Rget_name */ TESTING("H5Rget_name to get name from region reference(hyperslab)"); *buf1 = '\0'; - name_size1 = H5Rget_name(dsetr_id, H5R_DATASET_REGION, &ref_out[0], (char*)buf1, NAME_BUF_SIZE); + + /* Check H5Rget_name returns the correct length of the name when name is NULL */ + name_size1 = H5Rget_name(dsetr_id, H5R_DATASET_REGION, &ref_out[0], NULL, 0); + if(name_size1 != 7) TEST_ERROR + + name_size1 = H5Rget_name(dsetr_id, H5R_DATASET_REGION, &ref_out[0], (char*)buf1, NAME_BUF_SIZE ); if(!((HDstrcmp(buf1, "/MATRIX") == 0) &&(name_size1 == 7))) TEST_ERROR PASSED() diff --git a/test/trefer.c b/test/trefer.c index 698e95a..8f8a28e 100644 --- a/test/trefer.c +++ b/test/trefer.c @@ -205,9 +205,9 @@ test_reference_params(void) name_size = H5Rget_name(-1, H5R_DATASET_REGION, &rbuf[0], NULL, 0); VERIFY(name_size, FAIL, "H5Rget_name loc_id"); name_size = H5Rget_name(fid1, H5R_DATASET_REGION, NULL, NULL, 0); - VERIFY(ret, FAIL, "H5Rget_name ref"); + VERIFY(name_size, FAIL, "H5Rget_name ref"); name_size = H5Rget_name(fid1, H5R_MAXTYPE, &rbuf[0], NULL, 0); - VERIFY(ret, FAIL, "H5Rget_name type"); + VERIFY(name_size, FAIL, "H5Rget_name type"); /* Test parameters to H5Rget_region */ ret = H5Rget_region(-1, H5R_OBJECT, &rbuf[0]); diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt index 6649e48..43ef6ba 100644 --- a/tools/lib/CMakeLists.txt +++ b/tools/lib/CMakeLists.txt @@ -86,8 +86,9 @@ ENDIF (APPLE) # Add Target(s) to CMake Install for import into other projects #----------------------------------------------------------------------------- IF (HDF5_EXPORTED_TARGETS) - - INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} toolslibraries) + IF (BUILD_SHARED_LIBS) + INSTALL_TARGET_PDB (${HDF5_TOOLS_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} toolslibraries) + ENDIF (BUILD_SHARED_LIBS) INSTALL ( TARGETS diff --git a/vms/src/h5pubconf.h b/vms/src/h5pubconf.h index f0ea63b..7274edc 100644 --- a/vms/src/h5pubconf.h +++ b/vms/src/h5pubconf.h @@ -511,7 +511,7 @@ #define H5_PACKAGE_NAME "HDF5" /* Define to the full name and version of this package. */ -#define H5_PACKAGE_STRING "HDF5 1.9.170-swmr0" +#define H5_PACKAGE_STRING "HDF5 1.9.172-swmr0" /* Define to the one symbol short name of this package. */ #define H5_PACKAGE_TARNAME "hdf5" @@ -520,7 +520,7 @@ #define H5_PACKAGE_URL "" /* Define to the version of this package. */ -#define H5_PACKAGE_VERSION "1.9.170-swmr0" +#define H5_PACKAGE_VERSION "1.9.172-swmr0" /* Width for printf() for type `long long' or `__int64', use `ll' */ #define H5_PRINTF_LL_WIDTH "ll" @@ -683,7 +683,7 @@ /* #undef H5_USING_MEMCHECKER */ /* Version number of package */ -#define H5_VERSION "1.9.170-swmr0" +#define H5_VERSION "1.9.172-swmr0" /* Define if vsnprintf() returns the correct value for formatted strings that don't fit into size allowed */ -- cgit v0.12