cmake_minimum_required(VERSION 3.10)

project(lomiri-online-accounts-plugins VERSION 0.22)

option(ENABLE_QT6 "Enable building with Qt6" OFF)
option(ENABLE_TESTS "Build tests" ON)

if(ENABLE_QT6)
    message(STATUS "Building with Qt6")
    set(QT_VERSION_MAJOR 6)
    set(QT_SUFFIX "-qt6")
else()
    message(STATUS "Building with Qt5")
    set(QT_VERSION_MAJOR 5)
    set(QT_SUFFIX "")
endif()

include(GNUInstallDirs)
find_package(PkgConfig REQUIRED)

# Client credential options
set(X_CONSUMER_KEY "mkFv4kTQ89G6J8fB3rxg" CACHE STRING "X consumer key")
set(X_CONSUMER_SECRET "9fvOe8rtOXUeO5MynIaU1JtDEKeQaYmvOt1AjLavHw" CACHE STRING "X consumer secret")
set(FACEBOOK_CLIENT_ID "302061903208115" CACHE STRING "Facebook client ID")
set(FLICKR_CONSUMER_KEY "4aa0260d1eccfe968bb9f214f18e46fe" CACHE STRING "Flickr consumer key")
set(FLICKR_CONSUMER_SECRET "cbb9e94a8c3fe831" CACHE STRING "Flickr consumer secret")
set(GOOGLE_CLIENT_ID "995235780104-c3nepmjkcetqua2ao9797r5j38leb3e4.apps.googleusercontent.com" CACHE STRING "Google client ID")
set(GOOGLE_CLIENT_SECRET "NCB6sQ1OHn3-OamBu8-98M31" CACHE STRING "Google client secret")
set(MCLOUD_CLIENT_ID "APP1ZtqoN3R0002" CACHE STRING "Mcloud client ID")
set(MCLOUD_CLIENT_SECRET "A70EFCDC91456349E7FDECF0A33574AC" CACHE STRING "Mcloud client secret")
set(MICROSOFT_CLIENT_ID "478797ed-02c1-442b-bebd-709401131e7d" CACHE STRING "Microsoft client ID")
set(VK_CLIENT_ID "5404010" CACHE STRING "VK client ID")

# XML data files installation dirs from libaccounts-glib
pkg_check_modules(ACCOUNTS_GLIB REQUIRED libaccounts-glib)

execute_process(
    COMMAND ${PKG_CONFIG_EXECUTABLE}
            --variable=providerfilesdir
            --define-variable=prefix=${CMAKE_INSTALL_PREFIX}
            libaccounts-glib
    OUTPUT_VARIABLE ACCOUNTS_PROVIDERS_BASE_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(ACCOUNTS_PROVIDERS_BASE_DIR STREQUAL "")
    set(ACCOUNTS_PROVIDERS_BASE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/accounts/providers")
endif()

execute_process(
    COMMAND ${PKG_CONFIG_EXECUTABLE}
            --variable=servicefilesdir
            --define-variable=prefix=${CMAKE_INSTALL_PREFIX}
            libaccounts-glib
    OUTPUT_VARIABLE ACCOUNTS_SERVICES_BASE_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(ACCOUNTS_SERVICES_BASE_DIR STREQUAL "")
    set(ACCOUNTS_SERVICES_BASE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/accounts/services")
endif()

set(PROVIDERS_INSTALL_DIR "${ACCOUNTS_PROVIDERS_BASE_DIR}/lomiri")
set(SERVICES_INSTALL_DIR "${ACCOUNTS_SERVICES_BASE_DIR}/lomiri")

pkg_check_modules(LOA_PLUGIN REQUIRED LomiriOnlineAccountsPlugin${QT_SUFFIX})

execute_process(
    COMMAND ${PKG_CONFIG_EXECUTABLE}
            --variable=plugin_qml_dir
            --define-variable=prefix=${CMAKE_INSTALL_PREFIX}
            LomiriOnlineAccountsPlugin${QT_SUFFIX}
    OUTPUT_VARIABLE QML_PLUGINS_INSTALL_DIR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(QML_PLUGINS_INSTALL_DIR STREQUAL "")
    set(QML_PLUGINS_INSTALL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/accounts/qml-plugins")
endif()

if(ENABLE_TESTS)
    enable_testing()
endif()

add_subdirectory(data)
add_subdirectory(qml)
add_subdirectory(po)

install(PROGRAMS tools/lomiri-account-console
        DESTINATION ${CMAKE_INSTALL_BINDIR})
