cmake_minimum_required(VERSION 3.5)
project(lomiri-sync-monitor VERSION 0.6.0 LANGUAGES CXX)

include(FindPkgConfig)
include(FindGettext)
include(GNUInstallDirs)

find_package(Qt5Core REQUIRED)
find_package(Qt5DBus REQUIRED)
find_package(Qt5Network REQUIRED)
find_package(Qt5Organizer REQUIRED)
add_definitions(-DQT_NO_KEYWORDS)

find_package(GMock REQUIRED)

pkg_check_modules(ACCOUNTS REQUIRED accounts-qt5>=1.10)
pkg_check_modules(URLDISPATCHER REQUIRED lomiri-url-dispatcher)
pkg_check_modules(LIBNOTIFY libnotify)
pkg_check_modules(LIBSIGNON REQUIRED libsignon-qt5)
pkg_check_modules(SYSTEMD REQUIRED systemd)
pkg_check_modules(LOMIRI_CONNECTIVITY REQUIRED lomiri-connectivity-qt1)
pkg_check_modules(ONLINE_ACCOUNTS_PLUGINS REQUIRED LomiriOnlineAccountsPlugin)

pkg_get_variable(PLUGIN_QML_DIR LomiriOnlineAccountsPlugin plugin_qml_dir)
pkg_get_variable(SERVICE_FILE_BASE_DIR accounts-qt5 servicefilesdir)
set(SERVICE_FILE_DIR ${SERVICE_FILE_BASE_DIR}/lomiri)
pkg_get_variable(PROVIDER_FILE_BASE_DIR accounts-qt5 providerfilesdir)
set(PROVIDER_FILE_DIR ${PROVIDER_FILE_BASE_DIR}/lomiri)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

set(DESKTOP_FILE accounts/desktop/lomiri-sync-monitor-calendar.desktop)

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
               "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
               IMMEDIATE @ONLY)
add_custom_target(uninstall "${CMAKE_COMMAND}"
                  -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")

enable_testing()
add_subdirectory(3rd_party)
add_subdirectory(src)
add_subdirectory(authenticator)
add_subdirectory(accounts)
add_subdirectory(templates)
add_subdirectory(tests)
add_subdirectory(po)
add_subdirectory(Lomiri)
add_subdirectory(systemd)

configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
