cmake_minimum_required(VERSION 3.2.2) PROJECT (H4H5_LIB_TEST C CXX) #----------------------------------------------------------------------------- # Setup source files #----------------------------------------------------------------------------- if (H4H5_USE_HDFEOS2) add_definitions (-DHAVE_LIBHDFEOS) endif () set (H4H5_TESTS h4h5apitestdefault ) foreach (test ${H4H5_TESTS}) add_executable (${test} ${H4H5_LIB_TEST_SOURCE_DIR}/${test}.c) TARGET_NAMING (${test} STATIC) TARGET_C_PROPERTIES (${test} STATIC " " " ") target_link_libraries (${test} ${LINK_LIBS}) endforeach () if (BUILD_SHARED_LIBS) foreach (test ${H4H5_TESTS}) add_executable (${test}-shared ${H4H5_LIB_TEST_SOURCE_DIR}/${test}.c) TARGET_NAMING (${test}-shared SHARED) TARGET_C_PROPERTIES (${test}-shared SHARED " " " ") target_link_libraries (${test}-shared ${LINK_SHLIBS}) endforeach () endif () #-- Copy all the dat files from the test directory into the source directory set (H4H5_REFERENCE_TEST_FILES vg_all_test ) file (MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/Expected") 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 h4h5apitestdefault POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${H4H5_LIB_TEST_SOURCE_DIR}/Expected/${h4h5_file}.h5 ${desth5} ) endforeach () MACRO (ADD_H4H5_TEST testname testfile) # Remove any output file left over from previous test run add_test ( NAME TESTH4TOH5_CLEAR-${testname} COMMAND ${CMAKE_COMMAND} -E remove ${testfile}.h5 ) if (NOT "${last_test}" STREQUAL "") set_tests_properties (TESTH4TOH5_CLEAR-${testname} PROPERTIES DEPENDS ${last_test}) endif () add_test ( NAME TESTH4TOH5_COPY-${testname} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${H4H5_LIB_TEST_SOURCE_DIR}/${testfile}.hdf ${PROJECT_BINARY_DIR}/${testfile}.hdf ) set_tests_properties (TESTH4TOH5_COPY-${testname} PROPERTIES DEPENDS TESTH4TOH5_CLEAR-${testname}) add_test (NAME TESTH4TOH5-${testname} COMMAND $ ${testfile}.hdf ${testfile}.h5) set_tests_properties (TESTH4TOH5-${testname} PROPERTIES DEPENDS TESTH4TOH5_COPY-${testname}) set (last_test "TESTH4TOH5-${testname}") ENDMACRO () ADD_H4H5_TEST (h4h5apitestdefault vg_all_test) if (BUILD_SHARED_LIBS) ADD_H4H5_TEST (h4h5apitestdefault-shared vg_all_test) endif ()