summaryrefslogtreecommitdiffstats
path: root/config/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'config/cmake')
-rwxr-xr-xconfig/cmake/CTestCustom.cmake19
-rw-r--r--config/cmake/FindHDF5.cmake.in85
-rw-r--r--config/cmake/runTest.cmake36
3 files changed, 134 insertions, 6 deletions
diff --git a/config/cmake/CTestCustom.cmake b/config/cmake/CTestCustom.cmake
index b54bedc..6b6acc2 100755
--- a/config/cmake/CTestCustom.cmake
+++ b/config/cmake/CTestCustom.cmake
@@ -37,11 +37,9 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
hl_test-clear-objects
hl_fortran_test-clear-objects
######### tools/h5copy #########
- H5COPY-clearall-objects
H5COPY-clear-refs
H5COPY-clear-ext-links
H5COPY-clear-misc
- H5COPY-clear-samefile
######### tools/h5diff #########
H5DIFF-clearall-objects
######### tools/h5dump #########
@@ -52,7 +50,22 @@ SET (CTEST_CUSTOM_MEMCHECK_IGNORE
H5DUMP_PACKED_BITS-clearall-objects
H5DUMP-XML-clearall-objects
######### tools/h5import #########
- H5IMPORT-clear-objects
+ H5IMPORT-ASCII_I32-clear-objects
+ H5IMPORT-ASCII_I16-clear-objects
+ H5IMPORT-ASCII_I8-clear-objects
+ H5IMPORT-ASCII_UI16-clear-objects
+ H5IMPORT-ASCII_UI32-clear-objects
+ H5IMPORT-ASCII_F32-clear-objects
+ H5IMPORT-ASCII_F64-clear-objects
+ H5IMPORT-BINARY_F64-clear-objects
+ H5IMPORT-BINARY_I8-clear-objects
+ H5IMPORT-BINARY_I16-clear-objects
+ H5IMPORT-BINARY_I32-clear-objects
+ H5IMPORT-BINARY_UI16-clear-objects
+ H5IMPORT-BINARY_UI32-clear-objects
+ H5IMPORT-STR-clear-objects
+ H5IMPORT-BINARY_I8_EOF-clear-objects
+ H5IMPORT-ASCII_F64_R1-clear-objects
######### tools/h5jam #########
H5JAM-SETUP-N_twithub_u10_c-clear-objects
H5JAM-SETUP-N_twithub_u10_c
diff --git a/config/cmake/FindHDF5.cmake.in b/config/cmake/FindHDF5.cmake.in
new file mode 100644
index 0000000..a866859
--- /dev/null
+++ b/config/cmake/FindHDF5.cmake.in
@@ -0,0 +1,85 @@
+#
+# To be used by projects that make use of Cmakeified hdf5-1.8
+#
+
+#
+# Find the HDF5 includes and get all installed hdf5 library settings from
+# HDF5-config.cmake file : Requires a CMake compatible hdf5-1.8.5 or later
+# for this feature to work. The following vars are set if hdf5 is found.
+#
+# HDF5_FOUND - True if found, otherwise all other vars are undefined
+# HDF5_INCLUDE_DIR - The include dir for main *.h files
+# HDF5_FORTRAN_INCLUDE_DIR - The include dir for fortran modules and headers
+# HDF5_VERSION_STRING - full version (e.g. 1.8.5)
+# HDF5_VERSION_MAJOR - major part of version (e.g. 1.8)
+# HDF5_VERSION_MINOR - minor part (e.g. 5)
+#
+# The following boolean vars will be defined
+# HDF5_ENABLE_PARALLEL - 1 if HDF5 parallel supported
+# HDF5_BUILD_FORTRAN - 1 if HDF5 was compiled with fortran on
+# HDF5_BUILD_CPP_LIB - 1 if HDF5 was compiled with cpp on
+# HDF5_BUILD_TOOLS - 1 if HDF5 was compiled with tools on
+# HDF5_BUILD_HL_LIB - 1 if HDF5 was compiled with high level on
+# HDF5_BUILD_HL_CPP_LIB - 1 if HDF5 was compiled with high level and cpp on
+#
+# Target names that are valid (depending on enabled options)
+# will be the following
+#
+# hdf5 : HDF5 C library
+# hdf5_tools : the tools library
+# hdf5_f90cstub : used by Fortran to C interface
+# hdf5_fortran : Fortran HDF5 library
+# hdf5_cpp : HDF5 cpp interface library
+# hdf5_hl : High Level library
+# hdf5_hl_f90cstub : used by Fortran to C interface to High Level library
+# hdf5_hl_fortran : Fortran High Level library
+# hdf5_hl_cpp : High Level cpp interface library
+#
+# To aid in finding HDF5 as part of a subproject set
+# HDF5_ROOT_DIR_HINT to the location where hdf5-config.cmake lies
+
+INCLUDE (SelectLibraryConfigurations)
+INCLUDE (FindPackageHandleStandardArgs)
+
+# The HINTS option should only be used for values computed from the system.
+SET (_HDF5_HINTS
+ $ENV{HOME}/.local
+ $ENV{HDF5_ROOT}
+ $ENV{HDF5_ROOT_DIR_HINT}
+)
+# Hard-coded guesses should still go in PATHS. This ensures that the user
+# environment can always override hard guesses.
+SET (_HDF5_PATHS
+ $ENV{HOME}/.local
+ $ENV{HDF5_ROOT}
+ $ENV{HDF5_ROOT_DIR_HINT}
+ /usr/lib/@HDF5_PACKAGE@
+ /usr/share/@HDF5_PACKAGE@
+ /usr/local/@HDF5_PACKAGE@
+ /usr/local/@HDF5_PACKAGE@/share
+)
+
+FIND_PATH (HDF5_ROOT_DIR "@HDF5_PACKAGE@@HDF5_PACKAGE_EXT@-config.cmake"
+ HINTS ${_HDF5_HINTS}
+ PATHS ${_HDF5_PATHS}
+ PATH_SUFFIXES
+ lib/cmake/@HDF5_PACKAGE@
+ share/cmake/@HDF5_PACKAGE@
+)
+
+FIND_PATH (HDF5_INCLUDE_DIRS "H5public.h"
+ HINTS ${_HDF5_HINTS}
+ PATHS ${_HDF5_PATHS}
+ PATH_SUFFIXES
+ include
+ Include
+)
+
+# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
+# HDF5_INCLUDE_DIRS
+SET ( HDF5_INCLUDE_DIR "${HDF5_INCLUDE_DIRS}" )
+
+IF (HDF5_INCLUDE_DIR)
+ SET (HDF5_FOUND "YES")
+ INCLUDE (${HDF5_ROOT_DIR}/@HDF5_PACKAGE@@HDF5_PACKAGE_EXT@-config.cmake)
+ENDIF (HDF5_INCLUDE_DIR)
diff --git a/config/cmake/runTest.cmake b/config/cmake/runTest.cmake
index 139819f..4738523 100644
--- a/config/cmake/runTest.cmake
+++ b/config/cmake/runTest.cmake
@@ -24,7 +24,9 @@ IF (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
MESSAGE (FATAL_ERROR "Require TEST_REFERENCE to be defined")
ENDIF (NOT TEST_SKIP_COMPARE AND NOT TEST_REFERENCE)
-SET (ERROR_APPEND 1)
+IF (NOT TEST_ERRREF)
+ SET (ERROR_APPEND 1)
+ENDIF (NOT TEST_ERRREF)
MESSAGE (STATUS "COMMAND: ${TEST_PROGRAM} ${TEST_ARGS}")
@@ -74,7 +76,11 @@ IF (TEST_MASK_MOD)
ENDIF (TEST_MASK_MOD)
IF (TEST_MASK_ERROR)
- FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
+ IF (NOT TEST_ERRREF)
+ FILE (READ ${TEST_FOLDER}/${TEST_OUTPUT} TEST_STREAM)
+ 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}")
@@ -82,7 +88,11 @@ IF (TEST_MASK_ERROR)
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}")
+ IF (NOT TEST_ERRREF)
+ FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT} "${TEST_STREAM}")
+ ELSE (NOT TEST_ERRREF)
+ FILE (WRITE ${TEST_FOLDER}/${TEST_OUTPUT}.err "${TEST_STREAM}")
+ ENDIF (NOT TEST_ERRREF)
ENDIF (TEST_MASK_ERROR)
IF (TEST_FILTER)
@@ -109,6 +119,26 @@ IF (NOT TEST_SKIP_COMPARE)
IF (NOT ${TEST_RESULT} STREQUAL 0)
MESSAGE (FATAL_ERROR "Failed: The output of ${TEST_PROGRAM} 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)
+ FILE (WRITE ${TEST_FOLDER}/${TEST_ERRREF} "${TEST_STREAM}")
+ ENDIF (WIN32 AND NOT MINGW)
+
+ # now compare the error output with the error reference
+ EXECUTE_PROCESS (
+ COMMAND ${CMAKE_COMMAND} -E compare_files ${TEST_FOLDER}/${TEST_OUTPUT}.err ${TEST_FOLDER}/${TEST_ERRREF}
+ RESULT_VARIABLE TEST_RESULT
+ )
+
+ MESSAGE (STATUS "COMPARE Result: ${TEST_RESULT}")
+
+ # again, if return value is !=0 scream and shout
+ IF (NOT ${TEST_RESULT} STREQUAL 0)
+ MESSAGE (FATAL_ERROR "Failed: The error output of ${TEST_PROGRAM} did not match ${TEST_ERRREF}")
+ ENDIF (NOT ${TEST_RESULT} STREQUAL 0)
+ ENDIF (TEST_ERRREF)
ENDIF (NOT TEST_SKIP_COMPARE)
# everything went fine...