set(CMAKE_AUTOMOC ON)

foreach(QT_TEST_NAME animation audio events filter frame playlist properties repository service tractor)
  add_executable(test_${QT_TEST_NAME} test_${QT_TEST_NAME}/test_${QT_TEST_NAME}.cpp)
  target_link_libraries(test_${QT_TEST_NAME} PRIVATE Qt5::Core Qt5::Test mlt++)
  add_test(NAME "QtTest:${QT_TEST_NAME}" COMMAND test_${QT_TEST_NAME})
  set_tests_properties("QtTest:${QT_TEST_NAME}" PROPERTIES
    ENVIRONMENT "LANG=en_US;MLT_REPOSITORY=${CMAKE_BINARY_DIR}/src/modules;MLT_DATA=${CMAKE_SOURCE_DIR}/src/modules;MLT_PROFILES_PATH=${CMAKE_SOURCE_DIR}/profiles;MLT_PRESETS_PATH=${CMAKE_SOURCE_DIR}/presets")
endforeach()

file(GLOB YML_FILES "${CMAKE_SOURCE_DIR}/src/modules/*/*.yml")
foreach(YML_FILE ${YML_FILES})
  get_filename_component(FILE_NAME ${YML_FILE} NAME)
  file(RELATIVE_PATH KWALIFY_TEST_NAME "${CMAKE_SOURCE_DIR}/src/modules" ${YML_FILE})
  if(NOT FILE_NAME MATCHES "resolution_scale.yml")
    add_test(NAME "kwalify:${KWALIFY_TEST_NAME}" COMMAND ${Kwalify_EXECUTABLE} -f "${CMAKE_SOURCE_DIR}/src/framework/metaschema.yaml" ${YML_FILE})
  endif()
endforeach()
