diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2010-05-13 16:01:50 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2010-05-13 16:01:50 (GMT) |
commit | ae06433ab0ca13838c2762c8fad165a041d64c42 (patch) | |
tree | 72d645731c00953c3daf6dad8a1cf0dc97326943 /test/CMakeLists.txt | |
parent | 940931aa853602b0b6edfd4ca1a6526fd7975dd2 (diff) | |
download | hdf5-ae06433ab0ca13838c2762c8fad165a041d64c42.zip hdf5-ae06433ab0ca13838c2762c8fad165a041d64c42.tar.gz hdf5-ae06433ab0ca13838c2762c8fad165a041d64c42.tar.bz2 |
[svn-r18793] Add files to support building library with CMake
Tested: Local linux
Diffstat (limited to 'test/CMakeLists.txt')
-rw-r--r-- | test/CMakeLists.txt | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..70f85c2 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,253 @@ +cmake_minimum_required (VERSION 2.8) +PROJECT (H5_TEST) + +#----------------------------------------------------------------------------- +# Define Sources +#----------------------------------------------------------------------------- +SET (TEST_LIB_SRCS + ${HDF5_TEST_SOURCE_DIR}/h5test.c + ${HDF5_TEST_SOURCE_DIR}/testframe.c + ${HDF5_TEST_SOURCE_DIR}/cache_common.c +) + +SET (TEST_LIB_HEADERS + ${HDF5_TEST_SOURCE_DIR}/h5test.h +) + +#----------------------------------------------------------------------------- +# Generate the H5srcdir_str.h file containing user settings needed by compilation +#----------------------------------------------------------------------------- +SET (srcdir ${CMAKE_CURRENT_SOURCE_DIR}) +CONFIGURE_FILE (${HDF5_TEST_SOURCE_DIR}/H5srcdir_str.h.in H5srcdir_str.h @ONLY) +INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) + +ADD_LIBRARY (${HDF5_TEST_LIB_TARGET} ${LIB_TYPE} ${TEST_LIB_SRCS} ${TEST_LIB_HEADERS}) +IF (BUILD_SHARED_LIBS) + IF (MSVC) + TARGET_LINK_LIBRARIES (${HDF5_TEST_LIB_TARGET} "ws2_32.lib") + ENDIF (MSVC) +ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES (${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) +SET_GLOBAL_VARIABLE (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TEST_LIB_TARGET}") +H5_SET_LIB_OPTIONS (${HDF5_TEST_LIB_TARGET} ${HDF5_TEST_LIB_NAME} ${LIB_TYPE}) + +SET (testhdf5_SRCS + ${HDF5_TEST_SOURCE_DIR}/testhdf5.c + ${HDF5_TEST_SOURCE_DIR}/tarray.c + ${HDF5_TEST_SOURCE_DIR}/tattr.c + ${HDF5_TEST_SOURCE_DIR}/tchecksum.c + ${HDF5_TEST_SOURCE_DIR}/tconfig.c + ${HDF5_TEST_SOURCE_DIR}/tcoords.c + ${HDF5_TEST_SOURCE_DIR}/tfile.c + ${HDF5_TEST_SOURCE_DIR}/tgenprop.c + ${HDF5_TEST_SOURCE_DIR}/th5o.c + ${HDF5_TEST_SOURCE_DIR}/th5s.c + ${HDF5_TEST_SOURCE_DIR}/theap.c + ${HDF5_TEST_SOURCE_DIR}/tid.c + ${HDF5_TEST_SOURCE_DIR}/titerate.c + ${HDF5_TEST_SOURCE_DIR}/tmeta.c + ${HDF5_TEST_SOURCE_DIR}/tmisc.c + ${HDF5_TEST_SOURCE_DIR}/trefer.c + ${HDF5_TEST_SOURCE_DIR}/trefstr.c + ${HDF5_TEST_SOURCE_DIR}/tselect.c + ${HDF5_TEST_SOURCE_DIR}/tskiplist.c + ${HDF5_TEST_SOURCE_DIR}/tsohm.c + ${HDF5_TEST_SOURCE_DIR}/ttime.c + ${HDF5_TEST_SOURCE_DIR}/ttst.c + ${HDF5_TEST_SOURCE_DIR}/tunicode.c + ${HDF5_TEST_SOURCE_DIR}/tvltypes.c + ${HDF5_TEST_SOURCE_DIR}/tvlstr.c +) + +#-- Adding test for testhdf5 +ADD_EXECUTABLE (testhdf5 ${testhdf5_SRCS}) +H5_NAMING (testhdf5) +TARGET_LINK_LIBRARIES (testhdf5 ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) + +ADD_TEST (NAME testhdf5 COMMAND $<TARGET_FILE:testhdf5>) + +MACRO (ADD_H5_TEST file) + ADD_EXECUTABLE (${file} ${HDF5_TEST_SOURCE_DIR}/${file}.c) + H5_NAMING (${file}) + TARGET_LINK_LIBRARIES (${file} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) + + ADD_TEST (NAME ${file} COMMAND $<TARGET_FILE:${file}>) +ENDMACRO (ADD_H5_TEST file) + +SET (H5_TESTS + lheap + ohdr + stab + gheap + #cache + #cache_api + pool + hyperslab + istore + bittests + dt_arith + dtypes + cmpd_dset + extend + external + objcopy + links + unlink + big + mtime + fillval + mount + flush1 + flush2 + app_ref + enum + set_extent + #ttsafe + getname + vfd + ntypes + dangle + dtransform + reserved + cross_read + freespace + mf + farray + earray + btree2 + fheap +) + +FOREACH (test ${H5_TESTS}) + ADD_H5_TEST(${test}) +ENDFOREACH (test ${H5_TESTS}) + +SET (H5_CHECK_TESTS +) + +FOREACH (chktest ${H5_CHECK_TESTS}) + ADD_H5_TEST(${chktest}) +ENDFOREACH (chktest ${H5_CHECK_TESTS}) + +#-- Allow extra time for fheap to complete 30min +IF (WIN32) + SET_TESTS_PROPERTIES (fheap PROPERTIES TIMEOUT 1800) +ENDIF (WIN32) + +#-- Adding test for cache +ADD_EXECUTABLE (cache ${HDF5_TEST_SOURCE_DIR}/cache.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) +H5_NAMING (cache) +TARGET_LINK_LIBRARIES (cache ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) + +ADD_TEST (NAME cache COMMAND $<TARGET_FILE:cache>) + +ADD_EXECUTABLE (cache_api ${HDF5_TEST_SOURCE_DIR}/cache_api.c ${HDF5_TEST_SOURCE_DIR}/cache_common.c) +H5_NAMING (cache_api) +TARGET_LINK_LIBRARIES (cache_api ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) + +ADD_TEST (NAME cache_api COMMAND $<TARGET_FILE:cache_api>) + +#-- Adding test for ttsafe +SET (ttsafe_SRCS + ttsafe.c + ttsafe_dcreate.c + ttsafe_error.c + ttsafe_cancel.c + ttsafe_acreate.c +) + +ADD_EXECUTABLE (ttsafe ${ttsafe_SRCS}) +H5_NAMING (ttsafe) +TARGET_LINK_LIBRARIES (ttsafe ${HDF5_LIB_TARGET} ${HDF5_TEST_LIB_TARGET}) + +ADD_TEST (NAME ttsafe COMMAND $<TARGET_FILE:ttsafe>) + +#-- Copy all the HDF5 files from the test directory into the source directory +SET (HDF5_REFERENCE_TEST_FILES + tnullspace.h5 +) + +FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + SET (dest "${PROJECT_BINARY_DIR}/${h5_file}") + #MESSAGE (STATUS " Copying ${h5_file}") + ADD_CUSTOM_COMMAND ( + TARGET ${HDF5_TEST_LIB_TARGET} + 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}) + + +#-- Copy all the HDF5 files from the test directory into the source directory +SET (HDF5_REFERENCE_TEST_FILES + be_data.h5 + be_extlink1.h5 + be_extlink2.h5 + corrupt_stab_msg.h5 + deflate.h5 + family_v16_00000.h5 + family_v16_00001.h5 + family_v16_00002.h5 + family_v16_00003.h5 + filespace_1_6.h5 + filespace_1_8.h5 + fill_old.h5 + group_old.h5 + le_data.h5 + le_extlink1.h5 + le_extlink2.h5 + mergemsg.h5 + noencoder.h5 + specmetaread.h5 + tarrold.h5 + tbad_msg_count.h5 + tbogus.h5 + test_filters_be.hdf5 + test_filters_le.hdf5 + th5s.h5 + tlayouto.h5 + tmtimen.h5 + tmtimeo.h5 + vms_data.h5 +) + +FOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + SET (dest "${H5_TEST_BINARY_DIR}/${h5_file}") + #MESSAGE (STATUS " Copying ${h5_file} to ${dest}") + ADD_CUSTOM_COMMAND ( + TARGET ${HDF5_TEST_LIB_TARGET} + POST_BUILD + COMMAND ${CMAKE_COMMAND} + ARGS -E copy_if_different ${H5_TEST_SOURCE_DIR}/${h5_file} ${dest} + ) +ENDFOREACH (h5_file ${HDF5_REFERENCE_TEST_FILES}) + +# generator executables +IF (CREATE_GENERATORS) + SET (H5_GENERATORS + gen_bad_ohdr + gen_bogus + gen_cross + gen_deflate + gen_filters + gen_new_array + gen_new_fill + gen_new_group + gen_new_mtime + gen_new_super + gen_noencoder + gen_nullspace + gen_udlinks + space_overflow + gen_filespace + gen_specmetaread + ) + + FOREACH (gen ${H5_GENERATORS}) + ADD_EXECUTABLE (${gen} ${HDF5_TEST_SOURCE_DIR}/${gen}.c) + H5_NAMING (${gen}) + TARGET_LINK_LIBRARIES (${gen} ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET}) + ENDFOREACH (gen ${H5_GENERATORS}) + +ENDIF (CREATE_GENERATORS) |