cmake_minimum_required(VERSION 3.16)
project(lomiri-system-settings-security-privacy VERSION 1.0.2 LANGUAGES C CXX)

if(${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
   message(FATAL_ERROR "In-tree build attempt detected, aborting. Set your build dir outside your source dir, delete CMakeCache.txt from source root and try again.")
endif()

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
include(FindPkgConfig)
include(GNUInstallDirs)
include(FindIntl)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(NOT Intl_FOUND)
    message(FATAL_ERROR "libintl library not found")
endif()

find_package(Qt5
    COMPONENTS
        Core
        Gui
        DBus
        Network
        Quick
        Qml
    REQUIRED
)

pkg_check_modules(LomiriSystemSettings
    REQUIRED IMPORTED_TARGET
    LomiriSystemSettings
)
pkg_get_variable(PLUGIN_MANIFEST_DIR LomiriSystemSettings plugin_manifest_dir)
pkg_get_variable(PLUGIN_PRIVATE_MODULE_DIR LomiriSystemSettings plugin_private_module_dir)
pkg_get_variable(PLUGIN_QML_DIR LomiriSystemSettings plugin_qml_dir)

pkg_check_modules(POLKIT_AGENT REQUIRED polkit-agent-1)
pkg_check_modules(GLIB REQUIRED glib-2.0)
pkg_check_modules(TRUST_STORE REQUIRED trust-store)
pkg_check_modules(LIBSYSTEMD REQUIRED libsystemd)

add_subdirectory(plugins/security-privacy)

add_subdirectory(po)

option(ENABLE_TESTS "Build tests" ON)
if(ENABLE_TESTS)
    enable_testing()
    find_package(Qt5 COMPONENTS Test REQUIRED)
    pkg_check_modules(QtDBusMock
        REQUIRED IMPORTED_TARGET
        libqtdbusmock-1
    )
    pkg_check_modules(QtDBusTest
        REQUIRED IMPORTED_TARGET
        libqtdbustest-1
    )
    pkg_check_modules(GLib
        REQUIRED IMPORTED_TARGET
        glib-2.0
    )
    add_subdirectory(tests)
endif()
