diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2010-07-06 19:45:35 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2010-07-06 19:45:35 (GMT) |
commit | 98754fa9d12090f5e048fdb05cc5e9ce9111676f (patch) | |
tree | 407e611b19ee551d8153779104022dd886a467e5 /tools/h5ls/CMakeLists.txt | |
parent | 29321bcafa9f1c6108bb92b5a844a9d4d9c2c8e7 (diff) | |
download | hdf5-98754fa9d12090f5e048fdb05cc5e9ce9111676f.zip hdf5-98754fa9d12090f5e048fdb05cc5e9ce9111676f.tar.gz hdf5-98754fa9d12090f5e048fdb05cc5e9ce9111676f.tar.bz2 |
[svn-r19050] Description:
Bring r18704:19049 from trunk to revise_chunks branch.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
Mac OS X/32 10.6.3 (amazon) in debug mode
Mac OS X/32 10.6.3 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Diffstat (limited to 'tools/h5ls/CMakeLists.txt')
-rw-r--r-- | tools/h5ls/CMakeLists.txt | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt new file mode 100644 index 0000000..c2d9100 --- /dev/null +++ b/tools/h5ls/CMakeLists.txt @@ -0,0 +1,245 @@ +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) +IF (WIN32) + IF (MSVC) + IF (NOT BUILD_SHARED_LIBS) + SET_TARGET_PROPERTIES (h5ls + PROPERTIES + LINK_FLAGS "/NODEFAULTLIB:MSVCRT" + ) + ENDIF (NOT BUILD_SHARED_LIBS) + ENDIF (MSVC) +ENDIF (WIN32) +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 + textlinksrc-1-old.ls + textlinksrc-2-old.ls + textlinksrc-3-old.ls + textlinksrc-6-old.ls + textlinksrc-7-old.ls + tsoftlinks-1.ls + tsoftlinks-2.ls + tsoftlinks-3.ls + tsoftlinks-4.ls + tsoftlinks-5.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 + tsoftlinks.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) + + # test the help syntax + ADD_H5_TEST (help-1 0 -w80 -h) + ADD_H5_TEST (help-2 0 -w80 --help) + ADD_H5_TEST (help-3 0 -w80 -?) + + # test simple command + 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) + + # test for displaying groups + # The following combination of arguments is expected to return an error message + # and return value 1 + ADD_H5_TEST (tgroup-1 1 -w80 -r -g tgroup.h5) + ADD_H5_TEST (tgroup-2 0 -w80 -g tgroup.h5/g1) + + # test for displaying simple space datasets + ADD_H5_TEST (tdset-1 0 -w80 -r -d tdset.h5) + + # test for displaying soft links (dangle) + ADD_H5_TEST (tslink-1 0 -w80 -r tslink.h5) + + # test for displaying more soft links with --follow-symlinks + ADD_H5_TEST (tsoftlinks-1 0 --follow-symlinks tsoftlinks.h5) + ADD_H5_TEST (tsoftlinks-2 0 --follow-symlinks -r tsoftlinks.h5) + ADD_H5_TEST (tsoftlinks-3 0 --follow-symlinks tsoftlinks.h5/group1) + ADD_H5_TEST (tsoftlinks-4 0 --follow-symlinks -r tsoftlinks.h5/group1) + ADD_H5_TEST (tsoftlinks-5 0 --follow-symlinks tsoftlinks.h5/soft_dset1) + + # test for displaying external and user-defined links with --follow-symlinks + ADD_H5_TEST (textlink-1 0 -w80 -r textlink.h5) + ADD_H5_TEST (textlinksrc-1 0 -w80 --follow-symlinks -r textlinksrc.h5) + ADD_H5_TEST (textlinksrc-2 0 -w80 --follow-symlinks -rv textlinksrc.h5/ext_link5) + ADD_H5_TEST (textlinksrc-3 0 -w80 --follow-symlinks -r 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 --follow-symlinks textlinksrc.h5) + ADD_H5_TEST (textlinksrc-7 0 -w80 --follow-symlinks textlinksrc.h5/ext_link1) + ADD_H5_TEST (tudlink-1 0 -w80 -r tudlink.h5) + + # test for displaying external links with -E + # the option -E will be depriciated but keep it for backward compatibility + ADD_H5_TEST (textlinksrc-1-old 0 -w80 -Er textlinksrc.h5) + ADD_H5_TEST (textlinksrc-2-old 0 -w80 -Erv textlinksrc.h5/ext_link5) + ADD_H5_TEST (textlinksrc-3-old 0 -w80 -Er textlinksrc.h5/ext_link1) + ADD_H5_TEST (textlinksrc-6-old 0 -w80 -E textlinksrc.h5) + ADD_H5_TEST (textlinksrc-7-old 0 -w80 -E textlinksrc.h5/ext_link1) + + # tests for hard links + ADD_H5_TEST (thlink-1 0 -w80 thlink.h5) + + # tests for compound data types + ADD_H5_TEST (tcomp-1 0 -w80 -r -d tcompound.h5) + + #test for the nested compound type + ADD_H5_TEST (tnestcomp-1 0 -w80 -r -d tnestedcomp.h5) + + # test for loop detection + ADD_H5_TEST (tloop-1 0 -w80 -r -d tloop.h5) + + # test for string + ADD_H5_TEST (tstr-1 0 -w80 -r -d tstr.h5) + + # test test file created from lib SAF team + ADD_H5_TEST (tsaf 0 -w80 -r -d tsaf.h5) + + # test for variable length data types + ADD_H5_TEST (tvldtypes1 0 -w80 -r -d tvldtypes1.h5) + + # test for array data types + ADD_H5_TEST (tarray1 0 -w80 -r -d tarray1.h5) + + # test for empty data + ADD_H5_TEST (tempty 0 -w80 -d tempty.h5) + + # test for all dataset types written to attributes + # enable -S for avoiding printing NATIVE types + ADD_H5_TEST (tattr2 0 -w80 -v -S tattr2.h5) + + # test for non-existing file + ADD_H5_TEST (nosuchfile 1 nosuchfile.h5) + + IF (WORDS_BIGENDIAN) + # test for variable length data types in verbose mode + ADD_H5_TEST (tvldtypes2be 0 -v tvldtypes1.h5) + # test for dataset region references data types in verbose mode + 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 + COMPONENT + toolsapplications +) |