
# ------------------------------------------------------------------------
# MACRO metview_etc_files
# Ensures the files listed in ETC_FILES are copied to the build directory
# and that they will be installed at install time
# ------------------------------------------------------------------------

macro(metview_macro_test)
    set(options)
    set(single_value_args MACRO)
    set(multi_value_args RESOURCES)
    cmake_parse_arguments( _PAR "${options}" "${single_value_args}" "${multi_value_args}" ${_FIRST_ARG} ${ARGN} )

    ecbuild_add_test(TARGET      ${_PAR_MACRO}_dummy_target
                     COMMAND     ${FULL_STARTUP_SCRIPT_PATH}
                     TYPE        SCRIPT
                     ARGS        -b ${_PAR_MACRO}
                     RESOURCES   ${_PAR_MACRO} ${_PAR_RESOURCES})

    set(all_tests "${all_tests}${_PAR_MACRO} ") # note the spacing
endmacro()



set(all_tests) # empty to start with



if(ENABLE_PLOTTING)
    metview_macro_test(MACRO     HelloWorld.mv
                       RESOURCES set_output.mv ../data/z500.grb)

    metview_macro_test(MACRO     layoutx3.mv
                       RESOURCES set_output.mv ../data/z500.grb)
endif()

metview_macro_test(MACRO     grib_nearest_gridpoint.mv
                   RESOURCES  ../data/t1000_LL_1x1.grb
                              ../data/t1000_LL_1x1_subarea.grb
                              ../data/t1000_LL_2x2.grb)

metview_macro_test(MACRO     interpolation_sh_to_ll.mv
                   RESOURCES  ../data/t1000_SH.grb)

metview_macro_test(MACRO     interpolation_sh_to_rgg.mv
                   RESOURCES  ../data/t1000_SH.grb)

metview_macro_test(MACRO     interpolation_rgg_to_ll.mv
                   RESOURCES  ../data/t1000_SH_to_RGG_reference.grb)

metview_macro_test(MACRO     grib_to_gpt.mv
                   RESOURCES  ../data/t1000_LL_2x2.grb)

metview_macro_test(MACRO     gpt_to_grib_with_template.mv
                   RESOURCES  ../data/t1000_LL_2x2.grb ../data/10U_GG.grb)

#metview_macro_test(MACRO     interpolation_gg_to_subarea.mv
#                   RESOURCES  ../data/10U_GG.grb)

metview_macro_test(MACRO     bufr_obs_filter.mv
                   RESOURCES  ../data/bufr-1.bufr ../data/bufr_obs_filter_reference.gpt)

metview_macro_test(MACRO     bufr_picker.mv
                   RESOURCES  ../data/bufr-2.bufr ../data/bufr_picker_reference.gpt)

metview_macro_test(MACRO     inline_c.mv
                   RESOURCES ../data/z500.grb)

metview_macro_test(MACRO     inline_fortran.mv
                   RESOURCES ../data/z500.grb)

metview_macro_test(MACRO     station.mv)

if(ENABLE_MARS)
    metview_macro_test(MACRO      MarsAccess.mv
                       RESOURCES  ../data/10U_GG.grb )
endif()


# generate a script which can be used to run the tests on the installed version
set(METVIEW_COMMAND "${CMAKE_INSTALL_PREFIX}/bin/${METVIEW_SCRIPT}")
set(TESTS_DIR       "${CMAKE_CURRENT_BINARY_DIR}")
configure_file(post_install_tests.sh.in ${CMAKE_CURRENT_BINARY_DIR}/metview_post_install_tests.sh @ONLY)

install( FILES ${CMAKE_CURRENT_BINARY_DIR}/metview_post_install_tests.sh 
         DESTINATION ${MV_BIN_DIR}
         PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)

