set(CHECK_DEFAULT_PATH "")
if (EXISTS "/etc/debian_version")
    set(CHECK_DEFAULT_PATH "NO_DEFAULT_PATH")
endif()
find_program(QMLTESTRUNNER_BIN qmltestrunner REQUIRED
                 PATHS /usr/lib/qt${QT_VERSION_MAJOR}/bin
                 ${CHECK_DEFAULT_PATH}
)

find_program(XVFB_RUN_BIN
    NAMES xvfb-run
)

macro(DECLARE_QML_TEST TST_NAME TST_QML_FILE)
    add_test(NAME ${TST_NAME}
        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
        COMMAND ${XVFB_RUN_BIN} -a -s "-screen 0 1024x768x24" ${QMLTESTRUNNER_BIN} --platform xcb -input ${CMAKE_CURRENT_BINARY_DIR}/${TST_QML_FILE}
    )
endmacro()

if(QMLTESTRUNNER_BIN AND XVFB_RUN_BIN)
    declare_qml_test("tst_actions_bar" tst_ActionsBar.qml)
    declare_qml_test("tst_busy_indicator" tst_BusyIndicator.qml)
    declare_qml_test("tst_crop_drag_area" tst_CropDragArea.qml)
else()
    if (NOT QMLTESTRUNNER_BIN)
        message(WARNING "Qml tests disabled: qmltestrunner not found")
    else()
        message(WARNING "Qml tests disabled: xvfb-run not found")
    endif()
endif()

set(QML_TST_FILES
    tst_ActionsBar.qml
    tst_BusyIndicator.qml
    tst_CropDragArea.qml
)
add_custom_target(tst_QmlFiles ALL SOURCES ${QML_TST_FILES})

# copy files to binary dir in order to allow for relative imports
foreach(qmlFile ${QML_TST_FILES})
  file(COPY ${qmlFile} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
endforeach(qmlFile)
