cmake_minimum_required(VERSION 3.12.0)
project(lomiri-storage-provider-rclone VERSION "0.1")

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra")

include(CTest)
include(FindPkgConfig)
include(GNUInstallDirs)

enable_testing()

if (POLICY CMP0167)
  cmake_policy(SET CMP0167 NEW)
endif()

find_package(Boost 1.56 COMPONENTS thread REQUIRED)
find_package(Qt5Core REQUIRED)
find_package(Qt5DBus REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Test REQUIRED)
pkg_check_modules(SF_PROVIDER REQUIRED lomiri-storage-framework-provider>=0.3)
pkg_check_modules(SF_CLIENT REQUIRED lomiri-storage-framework-qt-client-2>=0.3)

add_definitions(-DQT_NO_KEYWORDS)

add_subdirectory(src)
add_subdirectory(data)
add_subdirectory(tests)

find_package(CoverageReport)
enable_coverage_report(
  TARGETS
    rclone-provider-lib
    lomiri-storage-provider-rclone
  FILTER
    ${CMAKE_SOURCE_DIR}/tests/*
    ${CMAKE_BINARY_DIR}/*
  TESTS
  ${UNIT_TEST_TARGETS}
)
