cmake_minimum_required(VERSION 3.2.2) PROJECT (H4H5_LIB_TEST C CXX) #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES (${H4H5_LIB_BINARY_DIR} ${H4H5_SRC_DIR}) LINK_DIRECTORIES ( ${H4H5_LIB_BINARY_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ) set (H4H5_TESTS h4toh5test h4h5apitestdefault h4h5apitestname h4h5apitestadvgroup h4h5apitestsds h4h5apitestimage h4h5apitestvdata h4h5apitestbasvgroup h4h5apitestimageattr h4h5apitestsdsattr h4h5apitestlonesds h4h5apitestloneimage h4h5apitestlonevdata h4toh5eostest ) MACRO (BUILD_H4H5_TEST file) add_executable (${file} ${H4H5_LIB_TEST_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file} STATIC) TARGET_C_PROPERTIES (${file} STATIC " " " ") target_link_libraries (${file} ${H4H5_SRC_LIB_TARGET} ${LINK_LIBS}) if (BUILD_SHARED_LIBS) add_executable (${file}-shared ${H4H5_LIB_TEST_SOURCE_DIR}/${file}.c) TARGET_NAMING (${file}-shared SHARED) TARGET_C_PROPERTIES (${file}-shared SHARED " " " ") target_link_libraries (${file}-shared ${H4H5_SRC_LIB_TARGET} ${LINK_LIBS}) endif () ENDMACRO () foreach (test ${H4H5_TESTS}) BUILD_H4H5_TEST(${test}) endforeach () #-- Copy all the dat files from the test directory into the source directory set (H4H5_REFERENCE_TEST_FILES image_lib_lonetest image_lib_test sds_lib_lonetest sds_lib_test testallvgroup vdata_lib_lonetest vdata_lib_test vg_all_test vg_all_testname vg_bas_test ) file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/Expected") if (BUILD_SHARED_LIBS) file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/shared") file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/shared/Expected") endif () foreach (h4h5_file ${H4H5_REFERENCE_TEST_FILES}) set (desth5 "${PROJECT_BINARY_DIR}/Expected/${h4h5_file}.h5") #MESSAGE(STATUS " Copying ${h4h5_file} to ${dest} and ${desth5}") add_custom_command ( TARGET h4toh5test POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${H4H5_SOURCE_DIR}/lib/testfiles/Expected/${h4h5_file}.h5 ${desth5} ) if (BUILD_SHARED_LIBS) set (desth5 "${PROJECT_BINARY_DIR}/shared/Expected/${h4h5_file}.h5") #MESSAGE(STATUS " Copying ${h4h5_file} to ${dest} and ${desth5}") add_custom_command ( TARGET h4toh5test POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${H4H5_SOURCE_DIR}/lib/testfiles/Expected/${h4h5_file}.h5 ${desth5} ) endif () endforeach () if (H5_USE_HDFEOS2) add_definitions (-DHAVE_LIBHDFEOS) endif () MACRO (ADD_H4H5_TEST testname testfile) add_test ( NAME TESTH4TOH5_COPY-${testname} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${H4H5_SOURCE_DIR}/lib/testfiles/${testfile}.hdf ${PROJECT_BINARY_DIR}/${testfile}.hdf ) if (NOT "${last_test}" STREQUAL "") set_tests_properties (TESTH4TOH5_COPY-${testname} PROPERTIES DEPENDS ${last_test}) endif () add_test (NAME TESTH4TOH5-${testname} COMMAND $ ${testfile}.hdf ${testfile}.h5) set_tests_properties (TESTH4TOH5-${testname} PROPERTIES DEPENDS TESTH4TOH5_COPY-${testname}) add_test ( NAME TESTH4TOH5-${testname}-DIFF COMMAND ${HDF5_DIFF_EXECUTABLE} -v ${PROJECT_BINARY_DIR}/${testfile}.h5 ${PROJECT_BINARY_DIR}/Expected/${testfile}.h5 ) set_tests_properties (TESTH4TOH5-${testname}-DIFF PROPERTIES DEPENDS TESTH4TOH5-${testname}) set (last_test "TESTH4TOH5-${testname}-DIFF") ENDMACRO () MACRO (ADD_H4H5_SHARED_TEST testname testfile) add_test ( NAME TESTH4TOH5_COPY-${testname}-shared COMMAND ${CMAKE_COMMAND} -E copy_if_different ${H4H5_SOURCE_DIR}/lib/testfiles/${testfile}.hdf ${PROJECT_BINARY_DIR}/shared/${testfile}.hdf ) if (NOT "${last_test}" STREQUAL "") set_tests_properties (TESTH4TOH5_COPY-${testname}-shared PROPERTIES DEPENDS ${last_test}) endif () add_test (NAME TESTH4TOH5-${testname}-shared COMMAND $ ${testfile}.hdf ${testfile}.h5) set_tests_properties (TESTH4TOH5-${testname}-shared PROPERTIES DEPENDS TESTH4TOH5_COPY-${testname}-shared WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/shared") add_test ( NAME TESTH4TOH5-${testname}-shared-DIFF COMMAND ${HDF5_DIFF_EXECUTABLE} -v ${PROJECT_BINARY_DIR}/${testfile}.h5 ${PROJECT_BINARY_DIR}/shared/Expected/${testfile}.h5 ) set_tests_properties (TESTH4TOH5-${testname}-shared-DIFF PROPERTIES DEPENDS TESTH4TOH5-${testname}-shared WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/shared") set (last_test "TESTH4TOH5-${testname}-shared-DIFF") ENDMACRO () # Remove any output file left over from previous test run add_test ( NAME h4toh5test-clearall-objects COMMAND ${CMAKE_COMMAND} -E remove image_lib_lonetest.h5 image_lib_test.h5 sds_lib_lonetest.h5 sds_lib_test.h5 testallvgroup.h5 vdata_lib_lonetest.h5 vdata_lib_test.h5 vg_all_test.h5 vg_all_testname.h5 vg_bas_test.h5 ) if (NOT "${last_test}" STREQUAL "") set_tests_properties (h4toh5test-clearall-objects PROPERTIES DEPENDS ${last_test}) endif () set (last_test "h4toh5test-clearall-objects") #ADD_H4H5_TEST (h4toh5test ${h4h5_file}) ADD_H4H5_TEST (h4h5apitestdefault vg_all_test) ADD_H4H5_TEST (h4h5apitestname vg_all_testname) ADD_H4H5_TEST (h4h5apitestsds sds_lib_test) ADD_H4H5_TEST (h4h5apitestimage image_lib_test) ADD_H4H5_TEST (h4h5apitestvdata vdata_lib_test) ADD_H4H5_TEST (h4h5apitestimageattr image_lib_test) ADD_H4H5_TEST (h4h5apitestsdsattr sds_lib_test) ADD_H4H5_TEST (h4h5apitestbasvgroup vg_bas_test) ADD_H4H5_TEST (h4h5apitestadvgroup testallvgroup) ADD_H4H5_TEST (h4h5apitestloneimage image_lib_lonetest) ADD_H4H5_TEST (h4h5apitestlonesds sds_lib_lonetest) ADD_H4H5_TEST (h4h5apitestlonevdata vdata_lib_lonetest) #ADD_H4H5_TEST (h4toh5eostest ${h4h5_file}) if (BUILD_SHARED_LIBS) #ADD_H4H5_SHARED_TEST (h4toh5test ${h4h5_file}) ADD_H4H5_SHARED_TEST (h4h5apitestdefault vg_all_test) ADD_H4H5_SHARED_TEST (h4h5apitestname vg_all_testname) ADD_H4H5_SHARED_TEST (h4h5apitestsds sds_lib_test) ADD_H4H5_SHARED_TEST (h4h5apitestimage image_lib_test) ADD_H4H5_SHARED_TEST (h4h5apitestvdata vdata_lib_test) ADD_H4H5_SHARED_TEST (h4h5apitestimageattr image_lib_test) ADD_H4H5_SHARED_TEST (h4h5apitestsdsattr sds_lib_test) ADD_H4H5_SHARED_TEST (h4h5apitestbasvgroup vg_bas_test) ADD_H4H5_SHARED_TEST (h4h5apitestadvgroup testallvgroup) ADD_H4H5_SHARED_TEST (h4h5apitestloneimage image_lib_lonetest) ADD_H4H5_SHARED_TEST (h4h5apitestlonesds sds_lib_lonetest) ADD_H4H5_SHARED_TEST (h4h5apitestlonevdata vdata_lib_lonetest) #ADD_H4H5_SHARED_TEST (h4toh5eostest ${h4h5_file}) endif ()