summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-10-05 07:17:21 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-10-05 07:17:21 (GMT)
commit14d1cc2a4ff8ac93a02e79bd5d4c91e05cfa9fb6 (patch)
treee10e912fa64f1c3ca2c96780e13cecb7debb27e1
parent376f8390b6df7d3250afc1b059bcd899ca0aee51 (diff)
downloadhdf5-14d1cc2a4ff8ac93a02e79bd5d4c91e05cfa9fb6.zip
hdf5-14d1cc2a4ff8ac93a02e79bd5d4c91e05cfa9fb6.tar.gz
hdf5-14d1cc2a4ff8ac93a02e79bd5d4c91e05cfa9fb6.tar.bz2
[svn-r27953] Merge of CMake files from the trunk.
r27796, 27803, 27808, 27817, 27823, 27831, 27836, 27846, 27858-27874, 27894-27897, 27901, 27903-27933 Not tested. CMake still basically broken in this branch.
-rw-r--r--CMakeLists.txt4
-rw-r--r--CTestConfig.cmake6
-rw-r--r--MANIFEST1
-rwxr-xr-xbin/cmakehdf540
-rw-r--r--config/cmake/HDF5Macros.cmake1
-rw-r--r--config/cmake/HDF5_Examples.cmake.in70
-rw-r--r--config/cmake/HDF5_Process_Flex_Files.cmake84
-rw-r--r--config/cmake/README.txt.cmake.in33
-rw-r--r--config/cmake/mccacheinit.cmake2
-rw-r--r--config/cmake/userblockTest.cmake16
-rw-r--r--config/cmake/vfdTest.cmake4
-rw-r--r--config/cmake_ext_mod/grepTest.cmake10
-rw-r--r--config/cmake_ext_mod/prunTest.cmake30
-rw-r--r--config/cmake_ext_mod/runTest.cmake32
-rw-r--r--hl/src/CMakeLists.txt77
-rw-r--r--release_docs/USING_CMake_Examples.txt57
-rw-r--r--release_docs/USING_HDF5_CMake.txt189
-rw-r--r--src/CMakeLists.txt113
-rw-r--r--test/CMakeLists.txt2
-rw-r--r--test/CMakeTests.cmake101
20 files changed, 644 insertions, 228 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 96d5772..1035142 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -212,6 +212,10 @@ if (NOT HDF5_INSTALL_DATA_DIR)
endif (NOT WIN32)
endif (NOT HDF5_INSTALL_DATA_DIR)
+if(DEFINED ADDITIONAL_CMAKE_PREFIX_PATH AND EXISTS "${ADDITIONAL_CMAKE_PREFIX_PATH}")
+ set (CMAKE_PREFIX_PATH ${ADDITIONAL_CMAKE_PREFIX_PATH} ${CMAKE_PREFIX_PATH})
+endif(DEFINED ADDITIONAL_CMAKE_PREFIX_PATH AND EXISTS "${ADDITIONAL_CMAKE_PREFIX_PATH}")
+
#-----------------------------------------------------------------------------
# parse the full version number from H5public.h and include in H5_VERS_INFO
#-----------------------------------------------------------------------------
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index 7497b08..36bf4a0 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -23,9 +23,9 @@ set (VALGRIND_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=
set (CTEST_MEMORYCHECK_COMMAND "/usr/bin/valgrind")
set (CTEST_MEMORYCHECK_COMMAND_OPTIONS "-v --tool=memcheck --leak-check=full --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe")
-set (CTEST_TEST_TIMEOUT 1200 CACHE STRING
- "Maximum time allowed before CTest will kill the test.")
-set (DART_TESTING_TIMEOUT 1200 CACHE STRING
+set (CTEST_TEST_TIMEOUT 600 CACHE STRING
+ "Maximum time allowed before CTest will kill the test.")
+set (DART_TESTING_TIMEOUT 600 CACHE STRING
"Maximum time allowed before CTest will kill the test." FORCE)
SET(CTEST_SUBMIT_RETRY_DELAY 20 CACHE STRING
diff --git a/MANIFEST b/MANIFEST
index ddfc274..b9ded36 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2434,6 +2434,7 @@
./config/cmake/hdf5-config.cmake.in
./config/cmake/hdf5-config-version.cmake.in
./config/cmake/HDFCompilerFlags.cmake
+./config/cmake/HDF5_Process_Flex_Files.cmake
./config/cmake/HDF5Macros.cmake
./config/cmake/HDF5UseFortran.cmake
./config/cmake/libhdf5.settings.cmake.in
diff --git a/bin/cmakehdf5 b/bin/cmakehdf5
index 715d6d7..afd4604 100755
--- a/bin/cmakehdf5
+++ b/bin/cmakehdf5
@@ -46,12 +46,12 @@ fi
cacheinit=$srcdir/config/cmake/cacheinit.cmake
build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=OFF # C++ interface default off
build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF # Fortran interface default off
-enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF # Fortran2003 interface default off
build_hl_lib=-DHDF5_BUILD_HL_LIB:BOOL=ON # High Level interface default on
build_testing=-DBUILD_TESTING:BOOL=ON # Build tests default on
build_tools=-DHDF5_BUILD_TOOLS:BOOL=ON # Build tools default on
with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT=ON # enable zlib filter default on
-with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables zlib filter default off
+with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT=OFF # enables szip filter default off
+szlib_path="" # szip lib path default off
shared_lib=-DBUILD_SHARED_LIBS:BOOL=ON # enables shared lib; default on
@@ -76,8 +76,6 @@ Usage: $progname [<options>]
where options are:
--enable-fortran | --disable-fortran:
enable or disable fortran API. Default is off.
- --enable-fortran2003 | --disable-fortran2003:
- enable or disable fortran2003 API. Default is off.
--enable-cxx | --disable-cxx:
enable or disable c++ API. Default is off.
--enable-hl | --disable-hl:
@@ -88,9 +86,13 @@ Usage: $progname [<options>]
enable or disable building tools. Default is on.
--enable-testing | --disable-testing:
enable or disable building tests. Default is on.
- --with-zlib | --without-zlib:
+ --with-zlib | --with-zlib=<libpath> | --without-zlib:
Use zlib library for external deflate I/O filter. Default is on.
+ --with-szlib | --with-szlib=<libpath> | --without-szlib:
+ Use szlib library for external deflate I/O filter. Default is on.
--help: shows details help page
+
+ <libpath>: the file path to the library, expect <libpath>/lib and <libpath>/include.
EOF
}
@@ -182,12 +184,6 @@ while [ $# -gt 0 ]; do
--disable-fortran)
build_fortran=-DHDF5_BUILD_FORTRAN:BOOL=OFF
;;
- --enable-fortran2003)
- enable_f2003=-DHDF5_ENABLE_F2003:BOOL=ON
- ;;
- --disable-fortran2003)
- enable_f2003=-DHDF5_ENABLE_F2003:BOOL=OFF
- ;;
--enable-cxx)
build_cpp_lib=-DHDF5_BUILD_CPP_LIB:BOOL=ON
;;
@@ -221,9 +217,26 @@ while [ $# -gt 0 ]; do
--with-zlib)
with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON
;;
+ --with-zlib=*)
+ xarg=`echo $1 | cut -d= -f2-`
+ with_zlib="-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=ON -DZLIB_ROOT=$xarg"
+ ;;
--without-zlib)
with_zlib=-DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF
;;
+ --with-szlib)
+ with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON
+ szlib_path="" # szlib is in default paths
+ ;;
+ --with-szlib=*)
+ xarg=`echo $1 | cut -d= -f2-`
+ with_szlib="-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=ON"
+ szlib_path="SZIP_INSTALL=$xarg"
+ ;;
+ --without-szlib)
+ with_szlib=-DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF
+ szlib_path="" # reset the path
+ ;;
--help)
# print the detail help page and exit
HELP
@@ -261,11 +274,12 @@ fi
echo Running Cmake for HDF5-${version} ...
# 4. Configure the C library, tools and tests with this command:
# If successful, append the configure summary to the configure logfile.
-STEP "Configure..." "cmake \
+STEP "Configure..." \
+ "env ${szlib_path} \
+ cmake \
-C $cacheinit \
$build_cpp_lib \
$build_fortran \
- $enable_f2003 \
$build_hl_lib \
$shared_lib \
$build_testing \
diff --git a/config/cmake/HDF5Macros.cmake b/config/cmake/HDF5Macros.cmake
index 976b910..bd86f34 100644
--- a/config/cmake/HDF5Macros.cmake
+++ b/config/cmake/HDF5Macros.cmake
@@ -39,5 +39,4 @@ macro (H5_SET_LIB_OPTIONS libtarget libname libtype)
endif (${libtype} MATCHES "SHARED")
endif (HDF5_BUILD_FRAMEWORKS)
endif (APPLE)
-
endmacro (H5_SET_LIB_OPTIONS)
diff --git a/config/cmake/HDF5_Examples.cmake.in b/config/cmake/HDF5_Examples.cmake.in
index d0c0509..65e2e9e 100644
--- a/config/cmake/HDF5_Examples.cmake.in
+++ b/config/cmake/HDF5_Examples.cmake.in
@@ -1,20 +1,48 @@
cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
###############################################################################################################
-# This script will build and run the examples from a compressed file
+# This script will build and run the examples from a folder
# Execute from a command line:
-# ctest -S HDF5_Examples.cmake,HDF5Examples -C Release -V -O test.log
+# ctest -S HDF5_Examples.cmake,OPTION=VALUE -C Release -V -O test.log
###############################################################################################################
-set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
-set(STATICLIBRARIES "@H5_ENABLE_STATIC_LIB@")
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_BUILD_CONFIGURATION "Release")
-#set(NO_MAC_FORTRAN "true")
#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
-set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_ENABLE_F2003:BOOL=ON")
-#set(CTEST_USE_TAR_SOURCE "${CTEST_SCRIPT_ARG}")
+
+# handle input parameters to script.
+#INSTALLDIR - HDF5 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
+#STATICLIBRARIES - Default is YES
+#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac)
+if(DEFINED CTEST_SCRIPT_ARG)
+ # transform ctest script arguments of the form
+ # script.ctest,var1=value1,var2=value2
+ # to variables with the respective names set to the respective values
+ string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+ foreach(current_var ${script_args})
+ if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+ set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+ endif()
+ endforeach()
+endif()
+if(NOT DEFINED INSTALLDIR)
+ set(INSTALLDIR "@CMAKE_INSTALL_PREFIX@")
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+ set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+ set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+if(NOT DEFINED STATICLIBRARIES)
+ set(STATICLIBRARIES "YES")
+endif()
+
+#TAR_SOURCE - name of tarfile
+#if(NOT DEFINED TAR_SOURCE)
+# set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.10.1-Source")
+#endif()
###############################################################################################################
# Adjust the following SET Commands as needed
@@ -42,7 +70,7 @@ endif(WIN32)
# For any comments please contact cdashhelp@hdfgroup.org
#
###############################################################################################################
-
+
#-----------------------------------------------------------------------------
# MAC machines need special option
#-----------------------------------------------------------------------------
@@ -53,14 +81,14 @@ if(APPLE)
set(ENV{CC} "${XCODE_CC}")
set(ENV{CXX} "${XCODE_CXX}")
if(NOT NO_MAC_FORTRAN)
- # Shared fortran is not supported, build static
+ # 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} -DHDF_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)
-
+
#-----------------------------------------------------------------------------
set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
## --------------------------
@@ -69,19 +97,19 @@ if(CTEST_USE_TAR_SOURCE)
## --------------------------
if(WIN32)
message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
- execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
- else(WIN32)
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+ else()
message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
- execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
- endif(WIN32)
-
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+ endif()
+
if(NOT rv EQUAL 0)
message(STATUS "extracting... [error-(${rv}) clean up]")
file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
endif(NOT rv EQUAL 0)
endif(CTEST_USE_TAR_SOURCE)
-
+
#-----------------------------------------------------------------------------
## Clear the build directory
## --------------------------
@@ -104,11 +132,11 @@ endif()
set (CTEST_CONFIGURE_COMMAND
"${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
)
-
+
#-----------------------------------------------------------------------------
## -- set output to english
set($ENV{LC_MESSAGES} "en_EN")
-
+
#-----------------------------------------------------------------------------
configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
@@ -122,5 +150,5 @@ if(res GREATER 0)
message (FATAL_ERROR "tests FAILED")
endif(res GREATER 0)
#-----------------------------------------------------------------------------
-##############################################################################################################
+##############################################################################################################
message(STATUS "DONE") \ No newline at end of file
diff --git a/config/cmake/HDF5_Process_Flex_Files.cmake b/config/cmake/HDF5_Process_Flex_Files.cmake
new file mode 100644
index 0000000..2306e93
--- /dev/null
+++ b/config/cmake/HDF5_Process_Flex_Files.cmake
@@ -0,0 +1,84 @@
+# post process flex/bison files
+
+message (STATUS "File: ${GEN_DIR} ${FILE_PARSE} ${FILE_ANALYZE}")
+
+if (FILE_PARSE)
+ # fix H5LTparse.c to declare H5LTyyparse return type as an hid_t
+ # instead of int. Currently the generated function H5LTyyparse is
+ # generated with a return value of type int, which is a mapping to the
+ # flex yyparse function. The return value in the HL library should be
+ # an hid_t.
+ # I propose to not use flex to generate this function, but for now I am
+ # adding a perl command to find and replace this function declaration in
+ # H5LTparse.c.
+ file (READ ${GEN_DIR}/${FILE_PARSE}.c TEST_STREAM)
+ string (REGEX REPLACE "int yyparse" "hid_t yyparse" TEST_STREAM "${TEST_STREAM}")
+ string (REGEX REPLACE "int\nyyparse" "hid_t\nyyparse" TEST_STREAM "${TEST_STREAM}")
+ string (REGEX REPLACE "int H5LTyyparse" "hid_t H5LTyyparse" TEST_STREAM "${TEST_STREAM}")
+ file (WRITE ${FILE_PARSE}.c "${TEST_STREAM}")
+ message (STATUS "replacing signature in H5LTparse.c")
+
+ # Add code that disables warnings in the flex/bison-generated code.
+ #
+ # Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions
+ # will simply ignore them, but we want to avoid those warnings.
+ file (READ ${FILE_PARSE}.c TEST_STREAM)
+ file (WRITE ${FILE_PARSE}.c "
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2\n
+#pragma GCC diagnostic ignored \"-Wconversion\"\n
+#pragma GCC diagnostic ignored \"-Wimplicit-function-declaration\"\n
+#pragma GCC diagnostic ignored \"-Wlarger-than=\"\n
+#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wnested-externs\"\n
+#pragma GCC diagnostic ignored \"-Wold-style-definition\"\n
+#pragma GCC diagnostic ignored \"-Wsign-compare\"\n
+#pragma GCC diagnostic ignored \"-Wsign-conversion\"\n
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wswitch-default\"\n
+#pragma GCC diagnostic ignored \"-Wunused-function\"\n
+#pragma GCC diagnostic ignored \"-Wunused-macros\"\n
+#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n
+#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n
+#elif defined __SUNPRO_CC\n
+#pragma disable_warn\n
+#elif defined _MSC_VER\n
+#pragma warning(push, 1)\n
+#endif\n
+ ")
+ file (APPEND ${FILE_PARSE}.c "${TEST_STREAM}")
+ message (STATUS "processed pragma in ${FILE_PARSE}")
+ file (READ ${GEN_DIR}/${FILE_PARSE}.h TEST_STREAM)
+ file (WRITE ${FILE_PARSE}.h "${TEST_STREAM}")
+endif (FILE_PARSE)
+
+if (FILE_ANALYZE)
+ # Add code that disables warnings in the flex/bison-generated code.
+ #
+ # Note that the GCC pragmas did not exist until gcc 4.2. Earlier versions
+ # will simply ignore them, but we want to avoid those warnings.
+ file (READ ${GEN_DIR}/${FILE_ANALYZE} TEST_STREAM)
+ file (WRITE ${FILE_ANALYZE} "
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >=2\n
+#pragma GCC diagnostic ignored \"-Wconversion\"\n
+#pragma GCC diagnostic ignored \"-Wimplicit-function-declaration\"\n
+#pragma GCC diagnostic ignored \"-Wlarger-than=\"\n
+#pragma GCC diagnostic ignored \"-Wmissing-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wnested-externs\"\n
+#pragma GCC diagnostic ignored \"-Wold-style-definition\"\n
+#pragma GCC diagnostic ignored \"-Wsign-compare\"\n
+#pragma GCC diagnostic ignored \"-Wsign-conversion\"\n
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"\n
+#pragma GCC diagnostic ignored \"-Wswitch-default\"\n
+#pragma GCC diagnostic ignored \"-Wunused-function\"\n
+#pragma GCC diagnostic ignored \"-Wunused-macros\"\n
+#pragma GCC diagnostic ignored \"-Wunused-parameter\"\n
+#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n
+#elif defined __SUNPRO_CC\n
+#pragma disable_warn\n
+#elif defined _MSC_VER\n
+#pragma warning(push, 1)\n
+#endif\n
+ ")
+ file (APPEND ${FILE_ANALYZE} "${TEST_STREAM}")
+ message (STATUS "processed pragma in ${FILE_ANALYZE}")
+endif (FILE_ANALYZE)
diff --git a/config/cmake/README.txt.cmake.in b/config/cmake/README.txt.cmake.in
index a12c5aa..ec40abe 100644
--- a/config/cmake/README.txt.cmake.in
+++ b/config/cmake/README.txt.cmake.in
@@ -1,11 +1,11 @@
@HDF5_PACKAGE_NAME@ version @HDF5_PACKAGE_VERSION_STRING@
------------------------------------------------------------------------------
-This directory contains the binary (release) distribution of
+This directory contains the binary (release) distribution of
@HDF5_PACKAGE_NAME@ @HDF5_PACKAGE_VERSION_MAJOR@ that was compiled on;
- @BINARY_PLATFORM@.
+ @BINARY_PLATFORM@.
-It was built with the following options:
+It was built with the following options:
-- @LIB_TYPE@ C/C++/Fortran libraries
-- SZIP (encoder enabled) and ZLIB
-- @LIB_TYPE@ HDF5 tools
@@ -24,27 +24,38 @@ Installation
After Installation
===========================================================================
-The examples folder, HDF5Examples, located in the
+The examples folder, HDF5Examples, located in the
HDF5 install folder, can be built and tested with CMake and the supplied
HDF5_Examples.cmake file. The HDF5_Examples.cmake expects HDF5 to have
-been installed in the default location with above compilers. Also, the CMake
+been installed in the default location with above compilers. Also, the CMake
utility should be installed.
To test the installation with the examples;
Create a directory to run the examples.
Copy HDF5Examples folder to this directory.
Copy HDF5_Examples.cmake to this directory.
- Edit HDF5_Examples.cmake line 8 to set INSTALLDIR to where HDF5 is installed.
- (The default should be correct unless you installed into a different folder.)
- Execute from this directory:
- ctest -S HDF5_Examples.cmake,HDF5Examples -C Release -V -O test.log
+ The default source folder is defined as "HDF5Examples". It can be changed
+ with the CTEST_SOURCE_NAME script option.
+ The default installation folder is defined as "@CMAKE_INSTALL_PREFIX@".
+ It can be changed with the INSTALLDIR script option.
+ The default ctest configuration is defined as "Release". It can be changed
+ with the CTEST_BUILD_CONFIGURATION script option. Note that this must
+ be the same as the value used with the -C command line option.
+ The default build configuration is defined to build and use static libraries.
+ Shared libraries can be used with the STATICLIBRARIES script option set to "NO".
+ Other options can be changed by editing the HDF5_Examples.cmake file.
+
+ If the defaults are okay, execute from this directory:
+ ctest -S HDF5_Examples.cmake -C Release -V -O test.log
+ If the defaults need change, execute from this directory:
+ ctest -S HDF5_Examples.cmake,CTEST_SOURCE_NAME=MyExamples,INSTALLDIR=MyLocation -C Release -V -O test.log
When executed, the ctest script will save the results to the log file, test.log, as
-indicated by the ctest command. If you wish the to see more build and test information,
+indicated by the ctest command. If you wish the to see more build and test information,
add "-VV" to the ctest command. The output should show;
100% tests passed, 0 tests failed out of 156.
-For more information see USING_CMake_Examples.txt in the install folder.
+For more information see USING_CMake_Examples.txt in the install folder.
===========================================================================
Documentation for this release can be found at the following URL:
diff --git a/config/cmake/mccacheinit.cmake b/config/cmake/mccacheinit.cmake
index 39ec124..19ecc15 100644
--- a/config/cmake/mccacheinit.cmake
+++ b/config/cmake/mccacheinit.cmake
@@ -4,6 +4,8 @@
# EXTERNAL cache entries
########################
+set (CMAKE_INSTALL_FRAMEWORK_PREFIX "Library/Frameworks" CACHE STRING "Frameworks installation directory" FORCE)
+
set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build Shared Libraries" FORCE)
set (BUILD_TESTING ON CACHE BOOL "Build HDF5 Unit Testing" FORCE)
diff --git a/config/cmake/userblockTest.cmake b/config/cmake/userblockTest.cmake
index 2e0740b..0775cbe 100644
--- a/config/cmake/userblockTest.cmake
+++ b/config/cmake/userblockTest.cmake
@@ -1,4 +1,4 @@
-# runTest.cmake executes a command and captures the output in a file. File is then compared
+# userblockTest.cmake executes a command and captures the output in a file. File is then compared
# against a reference file. Exit status of command can also be compared.
# arguments checking
@@ -48,7 +48,7 @@ if (TEST_CHECKUB STREQUAL "YES")
WORKING_DIRECTORY ${TEST_FOLDER}
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_HFILE}.len.txt
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
if (NOT ${TEST_RESULT} STREQUAL "0")
@@ -56,9 +56,9 @@ if (TEST_CHECKUB STREQUAL "YES")
endif (NOT ${TEST_RESULT} STREQUAL "0")
file (READ ${TEST_HFILE}.len.txt TEST_O_STRING_LEN)
endif (TEST_OFILE)
-
+
MATH( EXPR TEST_STRING_SIZE "${TEST_U_STRING_LEN} + ${TEST_O_STRING_LEN}" )
-
+
if (NOT TEST_O_STRING_LEN STREQUAL "0")
#$JAM_BIN/getub -c $s2 $origfile > $cmpfile
EXECUTE_PROCESS (
@@ -66,13 +66,13 @@ if (TEST_CHECKUB STREQUAL "YES")
WORKING_DIRECTORY ${TEST_FOLDER}
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_HFILE}-ub.cmp
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
#cat $ufile >> $cmpfile
file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
- file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}")
+ file (APPEND ${TEST_HFILE}-ub.cmp "${TEST_STREAM}")
else (NOT TEST_O_STRING_LEN STREQUAL "0")
file (STRINGS ${TEST_UFILE} TEST_STREAM NEWLINE_CONSUME)
file (WRITE ${TEST_HFILE}-ub.cmp ${TEST_STREAM})
@@ -84,7 +84,7 @@ if (TEST_CHECKUB STREQUAL "YES")
WORKING_DIRECTORY ${TEST_FOLDER}
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_HFILE}.cmp
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
@@ -107,7 +107,7 @@ else (TEST_CHECKUB STREQUAL "YES")
COMMAND ${TEST_PROGRAM} ${TEST_HFILE}
WORKING_DIRECTORY ${TEST_FOLDER}
RESULT_VARIABLE TEST_H_STRING_LEN
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
if (NOT TEST_H_STRING_LEN STREQUAL "0")
diff --git a/config/cmake/vfdTest.cmake b/config/cmake/vfdTest.cmake
index d3cb87e..4685d88 100644
--- a/config/cmake/vfdTest.cmake
+++ b/config/cmake/vfdTest.cmake
@@ -29,7 +29,7 @@ EXECUTE_PROCESS (
WORKING_DIRECTORY ${TEST_FOLDER}
OUTPUT_FILE ${TEST_OUTPUT}_${TEST_VFD}.out
ERROR_FILE ${TEST_OUTPUT}_${TEST_VFD}.err
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
@@ -37,7 +37,7 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}")
if (ERROR_APPEND)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.err TEST_STREAM)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.out "${TEST_STREAM}")
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT}_${TEST_VFD}.out "${TEST_STREAM}")
endif (ERROR_APPEND)
# if the return value is !=${TEST_EXPECT} bail out
diff --git a/config/cmake_ext_mod/grepTest.cmake b/config/cmake_ext_mod/grepTest.cmake
index 5f07134..a090057 100644
--- a/config/cmake_ext_mod/grepTest.cmake
+++ b/config/cmake_ext_mod/grepTest.cmake
@@ -33,7 +33,7 @@ execute_process (
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_OUTPUT}
ERROR_FILE ${TEST_OUTPUT}.err
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
@@ -44,16 +44,16 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
# TEST_REFERENCE should always be matched
-string (REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM})
-string (COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT)
+string (REGEX MATCH "${TEST_REFERENCE}" TEST_MATCH ${TEST_STREAM})
+string (COMPARE EQUAL "${TEST_REFERENCE}" "${TEST_MATCH}" TEST_RESULT)
if (${TEST_RESULT} STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did not contain ${TEST_REFERENCE}")
endif (${TEST_RESULT} STREQUAL "0")
-string (REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM})
+string (REGEX MATCH "${TEST_FILTER}" TEST_MATCH ${TEST_STREAM})
if (${TEST_EXPECT} STREQUAL "1")
# TEST_EXPECT (1) interperts TEST_FILTER as NOT to match
- string (LENGTH "${TEST_MATCH}" TEST_RESULT)
+ string (LENGTH "${TEST_MATCH}" TEST_RESULT)
if (NOT ${TEST_RESULT} STREQUAL "0")
message (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} did contain ${TEST_FILTER}")
endif (NOT ${TEST_RESULT} STREQUAL "0")
diff --git a/config/cmake_ext_mod/prunTest.cmake b/config/cmake_ext_mod/prunTest.cmake
index 3d5ec31..089c203 100644
--- a/config/cmake_ext_mod/prunTest.cmake
+++ b/config/cmake_ext_mod/prunTest.cmake
@@ -30,7 +30,7 @@ set (ERROR_APPEND 1)
message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_ENV_VAR)
- set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
+ set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
endif (TEST_ENV_VAR)
# run the test program, capture the stdout/stderr and the result var
@@ -40,7 +40,7 @@ EXECUTE_PROCESS (
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_OUTPUT}
ERROR_FILE ${TEST_OUTPUT}.err
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
@@ -51,49 +51,49 @@ file (WRITE ${TEST_FOLDER}/P_${TEST_REFERENCE} "${TEST_STREAM}")
if (ERROR_APPEND)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (ERROR_APPEND)
if (TEST_APPEND)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_ERROR}\n")
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_ERROR}\n")
endif (TEST_APPEND)
message (STATUS "COMMAND Error: ${TEST_ERROR}")
if (TEST_MASK)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage: <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage: <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_MASK)
if (TEST_MASK_MOD)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_MASK_MOD)
if (TEST_MASK_ERROR)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_MASK_ERROR)
if (TEST_FILTER)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_FILTER)
#if (TEST_REF_FILTER)
# message (STATUS "TEST_REF_FILTER: ${TEST_APPEND}${TEST_REF_FILTER}")
# file (READ ${TEST_FOLDER}/P_${TEST_REFERENCE} TEST_STREAM)
-# STRING(REGEX REPLACE "${TEST_APPEND}" "${TEST_REF_FILTER}" TEST_STREAM "${TEST_STREAM}")
+# STRING(REGEX REPLACE "${TEST_APPEND}" "${TEST_REF_FILTER}" TEST_STREAM "${TEST_STREAM}")
# file (WRITE ${TEST_FOLDER}/P_${TEST_REFERENCE} "${TEST_STREAM}")
#endif (TEST_REF_FILTER)
diff --git a/config/cmake_ext_mod/runTest.cmake b/config/cmake_ext_mod/runTest.cmake
index bfaae2b..6506183 100644
--- a/config/cmake_ext_mod/runTest.cmake
+++ b/config/cmake_ext_mod/runTest.cmake
@@ -32,7 +32,7 @@ endif (NOT TEST_ERRREF)
message (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
if (TEST_ENV_VAR)
- set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
+ set (ENV{${TEST_ENV_VAR}} "${TEST_ENV_VALUE}")
endif (TEST_ENV_VAR)
if (NOT TEST_INPUT)
@@ -43,7 +43,7 @@ if (NOT TEST_INPUT)
RESULT_VARIABLE TEST_RESULT
OUTPUT_FILE ${TEST_OUTPUT}
ERROR_FILE ${TEST_OUTPUT}.err
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
else (NOT TEST_INPUT)
@@ -55,7 +55,7 @@ else (NOT TEST_INPUT)
INPUT_FILE ${TEST_INPUT}
OUTPUT_FILE ${TEST_OUTPUT}
ERROR_FILE ${TEST_OUTPUT}.err
- OUTPUT_VARIABLE TEST_ERROR
+ OUTPUT_VARIABLE TEST_OUT
ERROR_VARIABLE TEST_ERROR
)
endif (NOT TEST_INPUT)
@@ -64,11 +64,11 @@ message (STATUS "COMMAND Result: ${TEST_RESULT}")
if (ERROR_APPEND)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (ERROR_APPEND)
if (TEST_APPEND)
- file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n")
+ file (APPEND ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_APPEND} ${TEST_RESULT}\n")
endif (TEST_APPEND)
# if the return value is !=${TEST_EXPECT} bail out
@@ -80,13 +80,13 @@ message (STATUS "COMMAND Error: ${TEST_ERROR}")
if (TEST_MASK)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage: <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "Storage:[^\n]+\n" "Storage: <details removed for portability>\n" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_MASK)
if (TEST_MASK_MOD)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "Modified:[^\n]+\n" "Modified: XXXX-XX-XX XX:XX:XX XXX\n" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_MASK_MOD)
@@ -96,13 +96,13 @@ if (TEST_MASK_ERROR)
else (NOT TEST_ERRREF)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT}.err TEST_STREAM)
endif (NOT TEST_ERRREF)
- STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
- STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "thread [0-9]*:" "thread (IDs):" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE ": ([^\n]*)[.]c " ": (file name) " TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE " line [0-9]*" " line (number)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "v[1-9]*[.][0-9]*[.]" "version (number)." TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "[1-9]*[.][0-9]*[.][0-9]*[^)]*" "version (number)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "H5Eget_auto[1-2]*" "H5Eget_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "H5Eset_auto[1-2]*" "H5Eset_auto(1 or 2)" TEST_STREAM "${TEST_STREAM}")
if (NOT TEST_ERRREF)
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
else (NOT TEST_ERRREF)
@@ -112,7 +112,7 @@ endif (TEST_MASK_ERROR)
if (TEST_FILTER)
file (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
- STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
+ STRING(REGEX REPLACE "${TEST_FILTER}" "" TEST_STREAM "${TEST_STREAM}")
file (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
endif (TEST_FILTER)
@@ -157,7 +157,7 @@ if (NOT TEST_SKIP_COMPARE)
if (NOT ${TEST_RESULT} STREQUAL 0)
message (FATAL_ERROR "Failed: The output of ${TEST_OUTPUT} did not match ${TEST_REFERENCE}")
endif (NOT ${TEST_RESULT} STREQUAL 0)
-
+
if (TEST_ERRREF)
if (WIN32 AND NOT MINGW)
file (READ ${TEST_FOLDER}/${TEST_ERRREF} TEST_STREAM)
diff --git a/hl/src/CMakeLists.txt b/hl/src/CMakeLists.txt
index 23943f9..e10e1b0 100644
--- a/hl/src/CMakeLists.txt
+++ b/hl/src/CMakeLists.txt
@@ -1,6 +1,73 @@
cmake_minimum_required (VERSION 3.1.0)
PROJECT (HDF5_HL_SRC)
+if (HDF5_GENERATE_HEADERS)
+ file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/genLT")
+ find_package (BISON)
+ if (BISON_FOUND)
+ find_package (FLEX)
+ if (FLEX_FOUND)
+ BISON_TARGET (H5LT_PARSER H5LTparse.y ${CMAKE_CURRENT_BINARY_DIR}/genLT/H5LTparse.c COMPILE_FLAGS "-d -pH5LTyy")
+ if (WIN32)
+ FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/genLT/H5LTanalyze.c COMPILE_FLAGS "--wincompat --nounistd -PH5LTyy")
+ else (WIN32)
+ FLEX_TARGET (H5LT_SCANNER H5LTanalyze.l ${CMAKE_CURRENT_BINARY_DIR}/genLT/H5LTanalyze.c COMPILE_FLAGS "--nounistd -PH5LTyy")
+ endif (WIN32)
+ ADD_FLEX_BISON_DEPENDENCY(H5LT_SCANNER H5LT_PARSER)
+
+ if (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ add_custom_command (
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.h
+ PRE_BUILD
+ COMMAND "${CMAKE_COMMAND}"
+ -D "GEN_DIR=genLT"
+ -D "FILE_PARSE=H5LTparse"
+ -P "${HDF_RESOURCES_DIR}/HDF5_Process_Flex_Files.cmake"
+ DEPENDS "${BISON_H5LT_PARSER_OUTPUTS}"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ )
+ add_custom_command (
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c
+ PRE_BUILD
+ COMMAND "${CMAKE_COMMAND}"
+ -D "GEN_DIR=genLT"
+ -D "FILE_ANALYZE=H5LTanalyze.c"
+ -P "${HDF_RESOURCES_DIR}/HDF5_Process_Flex_Files.cmake"
+ DEPENDS "${FLEX_H5LT_SCANNER_OUTPUTS}"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ )
+ add_custom_target (process_gen_H5LT
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ )
+
+ set (HL_SRCS
+ ${CMAKE_CURRENT_BINARY_DIR}/H5LTanalyze.c
+ ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.c
+ )
+ set (HL_HEADERS
+ ${CMAKE_CURRENT_BINARY_DIR}/H5LTparse.h
+ )
+ else (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
+ message (STATUS "Error during generate of files")
+ endif (BISON_H5LT_PARSER_DEFINED AND FLEX_H5LT_SCANNER_DEFINED)
+ else (FLEX_FOUND)
+ message (STATUS "Cannot generate files - flex not found")
+ endif (FLEX_FOUND)
+ else (BISON_FOUND)
+ message (STATUS "Cannot generate files - bison not found")
+ endif (BISON_FOUND)
+else (HDF5_GENERATE_HEADERS)
+ set (HL_SRCS
+ ${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c
+ ${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c
+ )
+ set (HL_HEADERS
+ ${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.h
+ )
+endif (HDF5_GENERATE_HEADERS)
#-----------------------------------------------------------------------------
# List Source files
@@ -37,6 +104,11 @@ set_target_properties (${HDF5_HL_LIB_TARGET} PROPERTIES
)
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIB_TARGET}")
set (install_targets ${HDF5_HL_LIB_TARGET})
+if (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_HL_LIB_TARGET} process_gen_H5LT)
+else (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_HL_LIB_TARGET} "${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c;${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c")
+endif (HDF5_GENERATE_HEADERS)
if (BUILD_SHARED_LIBS)
add_library (${HDF5_HL_LIBSH_TARGET} SHARED ${HL_SRCS} ${HL_HEADERS})
@@ -51,6 +123,11 @@ if (BUILD_SHARED_LIBS)
)
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_LIBSH_TARGET}")
set (install_targets ${install_targets} ${HDF5_HL_LIBSH_TARGET})
+ if (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_HL_LIBSH_TARGET} process_gen_H5LT)
+ else (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_HL_LIBSH_TARGET} "${HDF5_HL_SRC_SOURCE_DIR}/H5LTanalyze.c;${HDF5_HL_SRC_SOURCE_DIR}/H5LTparse.c")
+ endif (HDF5_GENERATE_HEADERS)
endif (BUILD_SHARED_LIBS)
#-----------------------------------------------------------------------------
diff --git a/release_docs/USING_CMake_Examples.txt b/release_docs/USING_CMake_Examples.txt
index d52a719..a6854ae 100644
--- a/release_docs/USING_CMake_Examples.txt
+++ b/release_docs/USING_CMake_Examples.txt
@@ -28,8 +28,8 @@ I. Preconditions
the HDF Install Utility (the *.msi file in the binary package for
Windows or the *.sh on Linux). If you are using a Windows platform,
you can obtain a pre-built Windows binary from The HDF Group's website
- at www.hdfgroup.org. See Section "III. Common changes to the
- HDF518_Examples.cmake file", for the line to change the location.
+ at www.hdfgroup.org.
+
========================================================================
@@ -37,40 +37,41 @@ II. Building HDF5 Examples with CMake
========================================================================
Files in the HDF5 install directory:
- HDF5Examples-0.1.1-Source folder
+ HDF5Examples folder
HDF518_Examples.cmake
Default installation process:
Create a directory to run the examples, i.e. \test_hdf5.
- Copy HDF5Examples-0.1.1-Source folder to this directory.
- Copy HDF518_Examples.cmake to this directory.
- Edit line 8 of the HDF518_Examples.cmake file and change the INSTALLDIR
- to the HDF5 install location.
-
- Execute from this directory:
- ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log
-
-The script will use the examples folder HDF5Examples-0.1.1-Source,
- and create a build directory inside the HDF5Examples-0.1.1-Source directory.
- It will then configure, build, and execute the examples. All the log files
- will be found under the build\Testing\Temporary directory, check these for
- errors.
-
-The amount of script information can be increased by adding -V to the ctest
- command. Even more information can be shown by adding -VV instead of -V.
+ Copy HDF5Examples folder to this directory.
+ Copy HDF5_Examples.cmake to this directory.
+ The default source folder is defined as "HDF5Examples". It can be changed
+ with the CTEST_SOURCE_NAME script option.
+ The default installation folder is defined as "@CMAKE_INSTALL_PREFIX@".
+ It can be changed with the INSTALLDIR script option.
+ The default ctest configuration is defined as "Release". It can be changed
+ with the CTEST_BUILD_CONFIGURATION script option. Note that this must
+ be the same as the value used with the -C command line option.
+ The default build configuration is defined to build and use static libraries.
+ Shared libraries can be used with the STATICLIBRARIES script option set to "NO".
+ Other options can be changed by editing the HDF5_Examples.cmake file.
+
+ If the defaults are okay, execute from this directory:
+ ctest -S HDF5_Examples.cmake -C Release -V -O test.log
+ If the defaults need change, execute from this directory:
+ ctest -S HDF5_Examples.cmake,CTEST_SOURCE_NAME=MyExamples,INSTALLDIR=MyLocation -C Release -V -O test.log
+
+ When executed, the ctest script will save the results to the log file, test.log, as
+ indicated by the ctest command. If you wish the to see more build and test information,
+ add "-VV" to the ctest command. The output should show;
+ 100% tests passed, 0 tests failed out of 156.
========================================================================
-III. Common changes to the HDF518_Examples.cmake file
+III. Other changes to the HDF518_Examples.cmake file
========================================================================
-Line 8: change the INSTALLDIR to a different HDF5 install location.
-
-Line 14: uncomment to allow Mac machines to build shared examples.
-
-Line 15: uncomment to build and test Fortran examples.
-
-Line 16: comment to NOT build and test Fortran examples with F2003 option.
+Line 10: uncomment to build and test Fortran examples.
-Line 17: uncomment to use a compressed source file.
+Line 43-45: uncomment to use a source tarball or zipfile;
+ Add script option "TAR_SOURCE=MySource.tar".
diff --git a/release_docs/USING_HDF5_CMake.txt b/release_docs/USING_HDF5_CMake.txt
index 5fdb76c..578f957 100644
--- a/release_docs/USING_HDF5_CMake.txt
+++ b/release_docs/USING_HDF5_CMake.txt
@@ -225,46 +225,165 @@ NOTE: these files are available at the HDF web site:
========================================================================
ctest
========================================================================
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
############################################################################
# Product specific script, HDF518_Examples.cmake, that uses the
# CTestScript.cmake file (see Appendix in the CMake.txt). Usage:
-# "ctest -S HDF518_Examples.cmake,HDF5Examples-0.1.1-Source -C Release -O test.log"
-# where HDF5Examples-0.1.1-Source is the source folder relative to the location of these scripts
-############################################################################
-
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
-
+# ctest -S HDF518_Examples.cmake,OPTION=VALUE -C Release -VV -O test.log
+# where valid options for OPTION are:
+# INSTALLDIR - root folder where hdf5 is installed
+# CTEST_BUILD_CONFIGURATION - Release, Debug, etc
+# CTEST_SOURCE_NAME - source folder
+# STATICLIBRARIES - Build/use static libraries
+# NO_MAC_FORTRAN - Yes to be SHARED on a Mac
+###############################################################################################################
+
+set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
set(CTEST_DASHBOARD_ROOT ${CTEST_SCRIPT_DIRECTORY})
-set(CTEST_SOURCE_NAME ${CTEST_SCRIPT_ARG})
-set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
-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
-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")
-
-# needed for source updates, change as required
-set(REPOSITORY_URL "http://svn.${hdfgroup_url}/hdf5-examples/trunk/1_8")
-
-set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/hdf5Examples-1.8")
-
-# location of the installed hdf5 (cmake configuration folder)
-set(ENV{HDF5_DIR} "/usr/share/cmake")
-
-include(${CTEST_SCRIPT_DIRECTORY}/CTestScript.cmake)
-
-message("DONE")
+#set(BUILD_OPTIONS "${BUILD_OPTIONS} -DHDF_BUILD_FORTRAN:BOOL=ON")
+
+# handle input parameters to script.
+#INSTALLDIR - HDF5-1.8 root folder
+#CTEST_BUILD_CONFIGURATION - Release, Debug, RelWithDebInfo
+#CTEST_SOURCE_NAME - name of source folder; HDF4Examples
+#STATICLIBRARIES - Default is YES
+#NO_MAC_FORTRAN - set to TRUE to allow shared libs on a Mac
+if(DEFINED CTEST_SCRIPT_ARG)
+ # transform ctest script arguments of the form
+ # script.ctest,var1=value1,var2=value2
+ # to variables with the respective names set to the respective values
+ string(REPLACE "," ";" script_args "${CTEST_SCRIPT_ARG}")
+ foreach(current_var ${script_args})
+ if ("${current_var}" MATCHES "^([^=]+)=(.+)$")
+ set("${CMAKE_MATCH_1}" "${CMAKE_MATCH_2}")
+ endif()
+ endforeach()
+endif()
+if(NOT DEFINED INSTALLDIR)
+ set(INSTALLDIR "/usr/local/myhdf5")
+endif()
+if(NOT DEFINED CTEST_BUILD_CONFIGURATION)
+ set(CTEST_BUILD_CONFIGURATION "Release")
+endif()
+if(NOT DEFINED CTEST_SOURCE_NAME)
+ set(CTEST_SOURCE_NAME "HDF5Examples")
+endif()
+if(NOT DEFINED STATICLIBRARIES)
+ set(STATICLIBRARIES "YES")
+endif()
+
+#TAR_SOURCE - name of tarfile
+#if(NOT DEFINED TAR_SOURCE)
+# set(CTEST_USE_TAR_SOURCE "HDF5Examples-1.2.1-Source")
+#endif()
+
+###############################################################################################################
+# Adjust the following SET Commands as needed
+###############################################################################################################
+if(WIN32)
+ if(STATICLIBRARIES)
+ set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF")
+ endif(STATICLIBRARIES)
+ set(ENV{HDF5_DIR} "${INSTALLDIR}/cmake")
+ set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}\\build)
+ set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_SOURCE_NAME}")
+ set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}\\${CTEST_BINARY_NAME}")
+else(WIN32)
+ if(STATICLIBRARIES)
+ set(BUILD_OPTIONS "${BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_ANSI_CFLAGS:STRING=-fPIC")
+ endif(STATICLIBRARIES)
+ set(ENV{HDF5_DIR} "${INSTALLDIR}/share/cmake")
+ set(ENV{LD_LIBRARY_PATH} "${INSTALLDIR}/lib")
+ set(CTEST_BINARY_NAME ${CTEST_SOURCE_NAME}/build)
+ set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_SOURCE_NAME}")
+ set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_BINARY_NAME}")
+endif(WIN32)
+
+###############################################################################################################
+# For any comments please contact cdashhelp@hdfgroup.org
+#
+###############################################################################################################
+
+#-----------------------------------------------------------------------------
+# MAC machines need special option
+#-----------------------------------------------------------------------------
+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}")
+ 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} -DHDF_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)
+
+#-----------------------------------------------------------------------------
+set(CTEST_CMAKE_COMMAND "\"${CMAKE_COMMAND}\"")
+## --------------------------
+if(CTEST_USE_TAR_SOURCE)
+ ## Uncompress source if tar or zip file provided
+ ## --------------------------
+ if(WIN32)
+ message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.zip]")
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}\\${CTEST_USE_TAR_SOURCE}.zip RESULT_VARIABLE rv)
+ else()
+ message(STATUS "extracting... [${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_USE_TAR_SOURCE}.tar]")
+ execute_process(COMMAND ${CMAKE_EXECUTABLE_NAME} -E tar -xvf ${CTEST_DASHBOARD_ROOT}/${CTEST_USE_TAR_SOURCE}.tar RESULT_VARIABLE rv)
+ endif()
+
+ if(NOT rv EQUAL 0)
+ message(STATUS "extracting... [error-(${rv}) clean up]")
+ file(REMOVE_RECURSE "${CTEST_SOURCE_DIRECTORY}")
+ message(FATAL_ERROR "error: extract of ${CTEST_SOURCE_NAME} failed")
+ endif(NOT rv EQUAL 0)
+endif(CTEST_USE_TAR_SOURCE)
+
+#-----------------------------------------------------------------------------
+## Clear the build directory
+## --------------------------
+set(CTEST_START_WITH_EMPTY_BINARY_DIRECTORY TRUE)
+if (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+ ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+else (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+ file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+endif (EXISTS "${CTEST_BINARY_DIRECTORY}" AND IS_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
+
+# Use multiple CPU cores to build
+include(ProcessorCount)
+ProcessorCount(N)
+if(NOT N EQUAL 0)
+ if(NOT WIN32)
+ set(CTEST_BUILD_FLAGS -j${N})
+ endif(NOT WIN32)
+ set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N})
+endif()
+set (CTEST_CONFIGURE_COMMAND
+ "${CTEST_CMAKE_COMMAND} -C \"${CTEST_SOURCE_DIRECTORY}/config/cmake/cacheinit.cmake\" -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION} ${BUILD_OPTIONS} \"-G${CTEST_CMAKE_GENERATOR}\" \"${CTEST_SOURCE_DIRECTORY}\""
+)
+
+#-----------------------------------------------------------------------------
+## -- set output to english
+set($ENV{LC_MESSAGES} "en_EN")
+
+#-----------------------------------------------------------------------------
+configure_file(${CTEST_SOURCE_DIRECTORY}/config/cmake/CTestCustom.cmake ${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake)
+ctest_read_custom_files ("${CTEST_BINARY_DIRECTORY}")
+## NORMAL process
+## --------------------------
+ctest_start (Experimental)
+ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}")
+ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+ctest_test (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND ${ctest_test_args} RETURN_VALUE res)
+if(res GREATER 0)
+ message (FATAL_ERROR "tests FAILED")
+endif(res GREATER 0)
+#-----------------------------------------------------------------------------
#################################################################################
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e40decb..9d854a3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -735,7 +735,6 @@ set (H5_PUBLIC_HEADERS
${H5Z_HDRS}
)
-
set (H5_PRIVATE_HEADERS
${HDF5_SRC_DIR}/H5private.h
${HDF5_SRC_DIR}/H5Aprivate.h
@@ -782,6 +781,55 @@ set (H5_PRIVATE_HEADERS
${HDF5_SRC_DIR}/H5win32defs.h
)
+set (H5_GENERATED_HEADERS
+ ${HDF5_SRC_DIR}/H5Edefin.h
+ ${HDF5_SRC_DIR}/H5Einit.h
+ ${HDF5_SRC_DIR}/H5Epubgen.h
+ ${HDF5_SRC_DIR}/H5Eterm.h
+ ${HDF5_SRC_DIR}/H5version.h
+ ${HDF5_SRC_DIR}/H5overflow.h
+)
+
+option (HDF5_GENERATE_HEADERS "Rebuild Generated Files" ON)
+mark_as_advanced (HDF5_GENERATE_HEADERS)
+if (HDF5_GENERATE_HEADERS)
+ find_package (Perl)
+ if (PERL_FOUND)
+ add_custom_command (
+ OUTPUT ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h
+ PRE_BUILD
+ COMMAND ${PERL_EXECUTABLE}
+ ARGS ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SRC_DIR}/H5err.txt
+ DEPENDS ${HDF5_SRC_DIR}/H5err.txt
+ COMMENT " Creating err header"
+ )
+
+ add_custom_command (
+ OUTPUT ${HDF5_SRC_DIR}/H5version.h
+ PRE_BUILD
+ COMMAND ${PERL_EXECUTABLE}
+ ARGS ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SRC_DIR}/H5vers.txt
+ DEPENDS ${HDF5_SRC_DIR}/H5vers.txt
+ COMMENT " Creating API version macro"
+ )
+
+ add_custom_command (
+ OUTPUT ${HDF5_SRC_DIR}/H5overflow.h
+ PRE_BUILD
+ COMMAND ${PERL_EXECUTABLE}
+ ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SRC_DIR}/H5overflow.txt
+ DEPENDS ${HDF5_SRC_DIR}/H5overflow.txt
+ COMMENT " Creating Assignment overflow macro"
+ )
+
+ add_custom_target(run_perl_scripts ALL
+ DEPENDS ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h ${HDF5_SRC_DIR}/H5version.h ${HDF5_SRC_DIR}/H5overflow.h
+ )
+ else (PERL_FOUND)
+ message (STATUS "Cannot generate headers - perl not found")
+ endif (PERL_FOUND)
+endif (GENERATE_ERROR_HEADERS)
+
#-----------------------------------------------------------------------------
# Setup the H5Detect utility which generates H5Tinit with platform
# specific type checks inside
@@ -791,6 +839,11 @@ TARGET_C_PROPERTIES (H5detect STATIC " " " ")
if (MSVC OR MINGW)
target_link_libraries (H5detect "ws2_32.lib")
endif (MSVC OR MINGW)
+if (HDF5_GENERATE_HEADERS)
+ add_dependencies(H5detect run_perl_scripts)
+else (HDF5_GENERATE_HEADERS)
+ add_dependencies(H5detect "${H5_GENERATED_HEADERS}")
+endif (HDF5_GENERATE_HEADERS)
set (CMD $<TARGET_FILE:H5detect>)
add_custom_command (
@@ -805,6 +858,11 @@ TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ")
if (MSVC OR MINGW)
target_link_libraries (H5make_libsettings "ws2_32.lib")
endif (MSVC OR MINGW)
+if (HDF5_GENERATE_HEADERS)
+ add_dependencies(H5make_libsettings run_perl_scripts)
+else (HDF5_GENERATE_HEADERS)
+ add_dependencies(H5make_libsettings "${H5_GENERATED_HEADERS}")
+endif (HDF5_GENERATE_HEADERS)
set (CMD $<TARGET_FILE:H5make_libsettings>)
add_custom_command (
@@ -815,44 +873,6 @@ add_custom_command (
WORKING_DIRECTORY ${HDF5_BINARY_DIR}
)
-if (GENERATE_ERROR_HEADERS)
- find_package (Perl)
- if (PERL_FOUND)
- add_custom_command (
- OUTPUT ${HDF5_BINARY_DIR}/H5Edefin.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SOURCE_DIR}/src/H5err.txt
- DEPENDS ${HDF5_SOURCE_DIR}/src/H5err.txt
- COMMENT " Creating err header"
- )
-
- add_custom_command (
- OUTPUT ${HDF5_BINARY_DIR}/H5version.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SOURCE_DIR}/src/H5vers.txt
- DEPENDS ${HDF5_SOURCE_DIR}/src/H5vers.txt
- COMMENT " Creating API version macro"
- )
-
- add_custom_command (
- OUTPUT ${HDF5_BINARY_DIR}/H5overflow.h
- PRE_BUILD
- COMMAND ${PERL_EXECUTABLE}
- ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SOURCE_DIR}/src/H5overflow.txt
- DEPENDS ${HDF5_SOURCE_DIR}/src/H5overflow.txt
- COMMENT " Creating Assignment overflow macro"
- )
-
- add_custom_target(run_perl_scripts ALL
- DEPENDS ${HDF5_BINARY_DIR}/H5Edefin.h ${HDF5_BINARY_DIR}/H5version.h ${HDF5_BINARY_DIR}/H5overflow.h
- )
- else (PERL_FOUND)
- message (STATUS "Cannot generate headers - perl not found")
- endif (PERL_FOUND)
-endif (GENERATE_ERROR_HEADERS)
-
#-----------------------------------------------------------------------------
# Add H5Tinit source to build - generated by H5Detect/CMake at configure time
#-----------------------------------------------------------------------------
@@ -867,7 +887,7 @@ set_source_files_properties (${HDF5_BINARY_DIR}/H5version.h GENERATED)
set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5overflow.h)
set_source_files_properties (${HDF5_BINARY_DIR}/H5overflow.h GENERATED)
-add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
+add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ")
target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS})
if (NOT WIN32)
@@ -882,6 +902,11 @@ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES
FOLDER libraries
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
+if (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_LIB_TARGET} run_perl_scripts)
+else (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_LIB_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h")
+endif (HDF5_GENERATE_HEADERS)
option (HDF5_ENABLE_DEBUG_APIS "Turn on debugging in all packages" OFF)
if (HDF5_ENABLE_DEBUG_APIS)
@@ -893,7 +918,7 @@ endif (HDF5_ENABLE_DEBUG_APIS)
set (install_targets ${HDF5_LIB_TARGET})
if (BUILD_SHARED_LIBS)
- add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS})
+ add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS})
TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED " " " ")
target_link_libraries (${HDF5_LIBSH_TARGET} ${LINK_SHARED_LIBS})
if (NOT WIN32)
@@ -910,6 +935,11 @@ if (BUILD_SHARED_LIBS)
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
)
+ if (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_LIBSH_TARGET} run_perl_scripts)
+ else (HDF5_GENERATE_HEADERS)
+ add_dependencies(${HDF5_LIBSH_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h")
+ endif (HDF5_GENERATE_HEADERS)
if (HDF5_ENABLE_THREADSAFE)
set_property (TARGET ${HDF5_LIBSH_TARGET}
APPEND PROPERTY COMPILE_DEFINITIONS
@@ -933,6 +963,7 @@ if (NOT HDF5_INSTALL_NO_DEVELOPMENT)
install (
FILES
${H5_PUBLIC_HEADERS}
+ ${H5_GENERATED_HEADERS}
DESTINATION
${HDF5_INSTALL_INCLUDE_DIR}
COMPONENT
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3fd3263..0b2b0f5 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -261,7 +261,7 @@ set (H5_TESTS
#links_env
file_image
enc_dec_plist
- enc_dec_plist_with_endianess
+ enc_dec_plist_cross_platform
unregister
#swmr
)
diff --git a/test/CMakeTests.cmake b/test/CMakeTests.cmake
index 10f4ccf..b3df0eb 100644
--- a/test/CMakeTests.cmake
+++ b/test/CMakeTests.cmake
@@ -20,6 +20,7 @@ if (HDF5_TEST_VFD)
sec2
stdio
core
+ core_paged
split
multi
family
@@ -139,47 +140,83 @@ endif (HDF5_TEST_VFD)
# Copy test files from test/testfiles/plist_files dir to test dir
# --------------------------------------------------------------------
set (HDF5_REFERENCE_PLIST_FILES
- acpl_be
- acpl_le
- dapl_be
- dapl_le
- dcpl_be
- dcpl_le
- dxpl_be
- dxpl_le
- fapl_be
- fapl_le
- fcpl_be
- fcpl_le
- gcpl_be
- gcpl_le
- lapl_be
- lapl_le
- lcpl_be
- lcpl_le
- ocpl_be
- ocpl_le
- ocpypl_be
- ocpypl_le
- strcpl_be
- strcpl_le
+ acpl_32be
+ acpl_32le
+ acpl_64be
+ acpl_64le
+ dapl_32be
+ dapl_32le
+ dapl_64be
+ dapl_64le
+ dcpl_32be
+ dcpl_32le
+ dcpl_64be
+ dcpl_64le
+ dxpl_32be
+ dxpl_32le
+ dxpl_64be
+ dxpl_64le
+ fapl_32be
+ fapl_32le
+ fapl_64be
+ fapl_64le
+ fcpl_32be
+ fcpl_32le
+ fcpl_64be
+ fcpl_64le
+ gcpl_32be
+ gcpl_32le
+ gcpl_64be
+ gcpl_64le
+ lapl_32be
+ lapl_32le
+ lapl_64be
+ lapl_64le
+ lcpl_32be
+ lcpl_32le
+ lcpl_64be
+ lcpl_64le
+ ocpl_32be
+ ocpl_32le
+ ocpl_64be
+ ocpl_64le
+ ocpypl_32be
+ ocpypl_32le
+ ocpypl_64be
+ ocpypl_64le
+ strcpl_32be
+ strcpl_32le
+ strcpl_64be
+ strcpl_64le
)
foreach (plistfile ${HDF5_REFERENCE_PLIST_FILES})
- set (dest "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files/${plistfile}")
+ set (dest "${PROJECT_BINARY_DIR}/H5TEST/testfiles/plist_files")
add_custom_command (
TARGET ${HDF5_TEST_LIB_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile} ${dest}
+ ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile} ${dest}/${plistfile}
+ )
+ add_custom_command (
+ TARGET ${HDF5_TEST_LIB_TARGET}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/def_${plistfile} ${dest}/def_${plistfile}
)
if (BUILD_SHARED_LIBS)
- set (dest "${PROJECT_BINARY_DIR}/H5TEST-shared/testfiles/plist_files/${plistfile}")
+ set (dest "${PROJECT_BINARY_DIR}/H5TEST-shared/testfiles/plist_files")
+ add_custom_command (
+ TARGET ${HDF5_TEST_LIBSH_TARGET}
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile} ${dest}/${plistfile}
+ )
add_custom_command (
TARGET ${HDF5_TEST_LIBSH_TARGET}
POST_BUILD
COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/${plistfile} ${dest}
+ ARGS -E copy_if_different ${HDF5_TEST_SOURCE_DIR}/testfiles/plist_files/def_${plistfile} ${dest}/def_${plistfile}
)
endif (BUILD_SHARED_LIBS)
endforeach (plistfile ${HDF5_REFERENCE_PLIST_FILES})
@@ -1121,10 +1158,18 @@ if (HDF5_TEST_VFD)
set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES DEPENDS VFD-${vfdname}-flush1)
set_tests_properties (VFD-${vfdname}-flush1 PROPERTIES TIMEOUT 10)
set_tests_properties (VFD-${vfdname}-flush2 PROPERTIES TIMEOUT 10)
+ set_tests_properties (VFD-${vfdname}-istore PROPERTIES TIMEOUT 1800)
+ if (NOT CYGWIN)
+ set_tests_properties (VFD-${vfdname}-cache PROPERTIES TIMEOUT 1800)
+ endif (NOT CYGWIN)
if (BUILD_SHARED_LIBS)
set_tests_properties (VFD-${vfdname}-flush2-shared PROPERTIES DEPENDS VFD-${vfdname}-flush1-shared)
set_tests_properties (VFD-${vfdname}-flush1-shared PROPERTIES TIMEOUT 10)
set_tests_properties (VFD-${vfdname}-flush2-shared PROPERTIES TIMEOUT 10)
+ set_tests_properties (VFD-${vfdname}-istore-shared PROPERTIES TIMEOUT 1800)
+ if (NOT CYGWIN)
+ set_tests_properties (VFD-${vfdname}-cache-shared PROPERTIES TIMEOUT 1800)
+ endif (NOT CYGWIN)
endif (BUILD_SHARED_LIBS)
if (HDF5_TEST_FHEAP_VFD)
add_test (