summaryrefslogtreecommitdiffstats
path: root/tools/h5ls/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tools/h5ls/CMakeLists.txt')
-rw-r--r--tools/h5ls/CMakeLists.txt168
1 files changed, 168 insertions, 0 deletions
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
new file mode 100644
index 0000000..54669ad
--- /dev/null
+++ b/tools/h5ls/CMakeLists.txt
@@ -0,0 +1,168 @@
+cmake_minimum_required (VERSION 2.8)
+PROJECT (HDF5_TOOLS_H5LS)
+
+#-----------------------------------------------------------------------------
+# Setup include Directories
+#-----------------------------------------------------------------------------
+INCLUDE_DIRECTORIES (${HDF5_TOOLS_SOURCE_DIR}/lib)
+INCLUDE_DIRECTORIES (${HDF5_PROJECT_DIR}/test)
+
+# --------------------------------------------------------------------
+# If testing was NOT enabled, then we need to build the tools library
+# --------------------------------------------------------------------
+#-- Add the h5ls executable
+ADD_EXECUTABLE (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c)
+H5_NAMING (h5ls)
+TARGET_LINK_LIBRARIES (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+
+SET (H5_DEP_EXECUTABLES
+ h5ls
+)
+
+IF (BUILD_TESTING)
+ #-- Copy all the HDF5 files from the test directory into the source directory
+ SET (HDF5_REFERENCE_FILES
+ help-1.ls
+ help-2.ls
+ help-3.ls
+ nosuchfile.ls
+ tall-1.ls
+ tall-2.ls
+ tarray1.ls
+ tattr2.ls
+ tcomp-1.ls
+ tdataregbe.ls
+ tdataregle.ls
+ tdset-1.ls
+ tempty.ls
+ textlink-1.ls
+ textlinksrc-1.ls
+ textlinksrc-2.ls
+ textlinksrc-3.ls
+ textlinksrc-4.ls
+ textlinksrc-5.ls
+ textlinksrc-6.ls
+ textlinksrc-7.ls
+ tgroup.ls
+ tgroup-1.ls
+ tgroup-2.ls
+ tgroup-3.ls
+ thlink-1.ls
+ tloop-1.ls
+ tnestcomp-1.ls
+ tsaf.ls
+ tslink-1.ls
+ tstr-1.ls
+ tudlink-1.ls
+ tvldtypes1.ls
+ tvldtypes2le.ls
+ tvldtypes2be.ls
+ )
+ SET (HDF5_REFERENCE_TEST_FILES
+ tall.h5
+ tarray1.h5
+ tattr2.h5
+ tcompound.h5
+ tdatareg.h5
+ tdset.h5
+ tempty.h5
+ textlink.h5
+ textlinksrc.h5
+ textlinktar.h5
+ tgroup.h5
+ thlink.h5
+ tloop.h5
+ tnestedcomp.h5
+ tsaf.h5
+ tslink.h5
+ tstr.h5
+ tudlink.h5
+ tvldtypes1.h5
+ )
+
+ FOREACH (ls_file ${HDF5_REFERENCE_FILES})
+ SET (lsdest "${PROJECT_BINARY_DIR}/${ls_file}")
+ #MESSAGE (STATUS " Translating ${ls_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5ls
+ POST_BUILD
+ COMMAND ${XLATE_UTILITY}
+ ARGS ${HDF5_TOOLS_SOURCE_DIR}/testfiles/${ls_file} ${lsdest} -l3
+ )
+ ENDFOREACH (ls_file ${HDF5_REFERENCE_FILES})
+
+ FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
+ SET (dest "${PROJECT_BINARY_DIR}/${h5_file}")
+ #MESSAGE (STATUS " Copying ${h5_file}")
+ ADD_CUSTOM_COMMAND (
+ TARGET h5ls
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${HDF5_TOOLS_SOURCE_DIR}/testfiles/${h5_file} ${dest}
+ )
+ ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES})
+
+ MACRO (ADD_H5_TEST resultfile resultcode)
+ ADD_TEST (
+ NAME H5LS-${resultfile}
+ COMMAND "${CMAKE_COMMAND}"
+ -D "TEST_PROGRAM=$<TARGET_FILE:h5ls>"
+ -D "TEST_ARGS=${ARGN}"
+ -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
+ -D "TEST_OUTPUT=${resultfile}.out"
+ -D "TEST_EXPECT=${resultcode}"
+ -D "TEST_REFERENCE=${resultfile}.ls"
+ -P "${HDF5_RESOURCES_DIR}/runTest.cmake"
+ )
+ ENDMACRO (ADD_H5_TEST file)
+
+ ADD_H5_TEST (help-1 0 -w80 -h)
+ ADD_H5_TEST (help-2 0 -w80 --help)
+ ADD_H5_TEST (help-3 0 -w80 -?)
+ ADD_H5_TEST (tall-1 0 -w80 tall.h5)
+ ADD_H5_TEST (tall-2 0 -w80 -r -d tall.h5)
+ ADD_H5_TEST (tgroup 0 -w80 tgroup.h5)
+ ADD_H5_TEST (tgroup-3 0 -w80 tgroup.h5/g1)
+ ADD_H5_TEST (tgroup-1 1 -w80 -r -g tgroup.h5)
+ ADD_H5_TEST (tgroup-2 0 -w80 -g tgroup.h5/g1)
+ ADD_H5_TEST (tdset-1 0 -w80 -r -d tdset.h5)
+ ADD_H5_TEST (tslink-1 0 -w80 -r tslink.h5)
+ ADD_H5_TEST (textlink-1 0 -w80 -r textlink.h5)
+ ADD_H5_TEST (textlinksrc-1 0 -w80 -Er textlinksrc.h5)
+ ADD_H5_TEST (textlinksrc-2 0 -w80 -Erv textlinksrc.h5/ext_link5)
+ ADD_H5_TEST (textlinksrc-3 0 -w80 -Er textlinksrc.h5/ext_link1)
+ ADD_H5_TEST (textlinksrc-4 0 -w80 -r textlinksrc.h5)
+ ADD_H5_TEST (textlinksrc-5 0 -w80 -r textlinksrc.h5/ext_link1)
+ ADD_H5_TEST (textlinksrc-6 0 -w80 -E textlinksrc.h5)
+ ADD_H5_TEST (textlinksrc-7 0 -w80 -E textlinksrc.h5/ext_link1)
+ ADD_H5_TEST (tudlink-1 0 -w80 -r tudlink.h5)
+ ADD_H5_TEST (thlink-1 0 -w80 thlink.h5)
+ ADD_H5_TEST (tcomp-1 0 -w80 -r -d tcompound.h5)
+ ADD_H5_TEST (tnestcomp-1 0 -w80 -r -d tnestedcomp.h5)
+ ADD_H5_TEST (tloop-1 0 -w80 -r -d tloop.h5)
+ ADD_H5_TEST (tstr-1 0 -w80 -r -d tstr.h5)
+ ADD_H5_TEST (tsaf 0 -w80 -r -d tsaf.h5)
+ ADD_H5_TEST (tvldtypes1 0 -w80 -r -d tvldtypes1.h5)
+ ADD_H5_TEST (tarray1 0 -w80 -r -d tarray1.h5)
+ ADD_H5_TEST (tempty 0 -w80 -d tempty.h5)
+ ADD_H5_TEST (tattr2 0 -w80 -v -S tattr2.h5)
+ ADD_H5_TEST (nosuchfile 1 nosuchfile.h5)
+ IF (WORDS_BIGENDIAN)
+ ADD_H5_TEST (tvldtypes2be 0 -v tvldtypes1.h5)
+ ADD_H5_TEST (tdataregbe 0 -v tdatareg.h5)
+ ELSE (WORDS_BIGENDIAN)
+ ADD_H5_TEST (tvldtypes2le 0 -v tvldtypes1.h5)
+ ADD_H5_TEST (tdataregle 0 -v tdatareg.h5)
+ ENDIF (WORDS_BIGENDIAN)
+
+ENDIF (BUILD_TESTING)
+
+#-----------------------------------------------------------------------------
+# Rules for Installation of tools using make Install target
+#-----------------------------------------------------------------------------
+INSTALL (
+ TARGETS
+ h5ls
+ RUNTIME DESTINATION
+ bin/tools
+)