include(FindPkgConfig)

pkg_check_modules(ONLINEACCOUNTS_DEPS REQUIRED OnlineAccountsQt)
pkg_check_modules(STORAGE_FRAMEWORK_PROVIDER storage-framework-provider-1 REQUIRED)
pkg_check_modules(PROCESS_CPP process-cpp REQUIRED)

include_directories(
    ${CMAKE_CURRENT_BINARY_DIR}
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_SOURCE_DIR}/provider/
    ${STORAGE_FRAMEWORK_PROVIDER_INCLUDE_DIRS}
    ${CMAKE_CURRENT_SOURCE_DIR}/storage-framework-internal/include/
    ${ONLINEACCOUNTS_DEPS_INCLUDE_DIRS}
)

configure_file(testsetup.h.in testsetup.h @ONLY)

find_package(Qt5DBus REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Test REQUIRED)
find_package(Boost COMPONENTS filesystem system thread REQUIRED)

add_subdirectory(storage-framework-internal)

add_executable(
    mcloud-provider-unit-test
    mcloud-provider-unit-tests.cpp
    ${generated_files}
)

set_target_properties(
    mcloud-provider-unit-test
    PROPERTIES AUTOMOC TRUE
)

target_link_libraries(
    mcloud-provider-unit-test
    mcloud-provider-static
    mcloud
    storage-framework-common-internal
    Qt5::Test
    testutils
    gtest
    ${Boost_LIBRARIES}
    ${STORAGE_FRAMEWORK_PROVIDER_LDFLAGS}
    ${ONLINEACCOUNTS_DEPS_LDFLAGS}
    ${PROCESS_CPP_LDFLAGS}
)

add_test(
    mcloud-provider-unit-test 
    mcloud-provider-unit-test
)

add_definitions(-DBOOST_THREAD_VERSION=4)

add_subdirectory(utils)
