cmake_minimum_required(VERSION 3.5)
project(qtaskwarrior)

set(QTASKWARRIOR_PLASMOID ON CACHE BOOL "Build the plasmoid")
set(QTASKWARRIOR_VERSION CACHE STRING "Version of qtaskwarrior")

find_package(ECM REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
include(KDEInstallDirs)
include(ECMAddAppIcon)
include(ECMInstallIcons)

IF(QTASKWARRIOR_VERSION STREQUAL "")
    find_package(Hg REQUIRED)
    HG_WC_INFO(${PROJECT_SOURCE_DIR} qtaskwarrior)
    set(QTASKWARRIOR_VERSION "0.0+${qtaskwarrior_WC_REVISION}.${qtaskwarrior_WC_CHANGESET}")
ENDIF()


# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed
set(CMAKE_AUTOMOC ON)
# Create code from a list of Qt designer ui files
set(CMAKE_AUTOUIC ON)
# Process qrc files
set(CMAKE_AUTORCC ON)

find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Qml REQUIRED)
find_package(KF5CoreAddons REQUIRED)
find_package(Qt5LinguistTools REQUIRED)
find_package(KF5WidgetsAddons REQUIRED)
find_package(KF5XmlGui REQUIRED)

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
if (${CMAKE_VERSION} VERSION_LESS "3.12")
    add_definitions(-DQT_DEPRECATED_WARNINGS)
else()
    add_compile_definitions(QT_DEPRECATED_WARNINGS)
endif()

add_subdirectory(src)

set(APPLICATION_ID io.osdn.qtaskwarrior)

install(PROGRAMS ${APPLICATION_ID}.desktop
    DESTINATION ${KDE_INSTALL_APPDIR})

install(FILES ${APPLICATION_ID}.appdata.xml
    DESTINATION ${KDE_INSTALL_METAINFODIR})
