set(CMAKE_AUTOMOC ON)

include_directories(
    ${CMAKE_SOURCE_DIR}/include/lomiri/shell/application
    ${CMAKE_CURRENT_SOURCE_DIR}
)

set(ApplicationMocks_SOURCES
    Mocks/MockApplicationManager.cpp
    Mocks/MockApplicationInfo.cpp
)
if(NOT ENABLE_QT6)
    set(ApplicationMocks_SOURCES ${ApplicationMocks_SOURCES}
        ${CMAKE_SOURCE_DIR}/include/lomiri/shell/application/ApplicationManagerInterface.h
        ${CMAKE_SOURCE_DIR}/include/lomiri/shell/application/ApplicationInfoInterface.h)
endif()

add_library(ApplicationMocks SHARED ${ApplicationMocks_SOURCES})

target_link_libraries(ApplicationMocks
    Qt${QT_VERSION_MAJOR}::Core
    Qt${QT_VERSION_MAJOR}::Gui
    ${LOMIRI_SHELL_API_LIB}
)

set(TestApplicationPlugin_SOURCES
    TestApplicationPlugin.cpp
)

add_library(TestApplicationPlugin MODULE ${TestApplicationPlugin_SOURCES})

target_link_libraries(TestApplicationPlugin
    Qt${QT_VERSION_MAJOR}::Core
    Qt${QT_VERSION_MAJOR}::Gui
    Qt${QT_VERSION_MAJOR}::Quick
    ${LOMIRI_SHELL_API_LIB}
    ApplicationMocks
)

add_custom_target(TestApplicationPluginQmldir ALL
    COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/qmldir" "${CMAKE_CURRENT_BINARY_DIR}"
    DEPENDS qmldir
)
