#***************************************************************************
#* SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
#* SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
#* SPDX-License-Identifier: GPL-3.0-or-later
#***************************************************************************
MESSAGE( STATUS "..:: SKROOGEAKONADI ::..")
PROJECT(skroogeakonadi)
IF(SKG_DBUS)
    MESSAGE( STATUS "     DBUS enabled")
    ADD_DEFINITIONS(-DSKG_DBUS=${SKG_DBUS})
ELSE(SKG_DBUS)
    MESSAGE( STATUS "     DBUS disabled")
ENDIF(SKG_DBUS)

FIND_PACKAGE (KdepimLibs REQUIRED)
INCLUDE(MacroLibrary)
INCLUDE(MacroOptionalAddSubdirectory)
INCLUDE(CheckIncludeFiles)

FIND_PROGRAM(XSLTPROC_EXECUTABLE xsltproc)
MACRO_LOG_FEATURE(XSLTPROC_EXECUTABLE "xsltproc" "The command line XSLT processor from libxslt" "https://xmlsoft.org/XSLT/" FALSE "" "Needed for building Akonadi resources. Recommended.")

if (XSLTPROC_EXECUTABLE)
  # generates a D-Bus interface description from a KConfigXT file
  macro( kcfg_generate_dbus_interface _kcfg _name )
    add_custom_command(
      OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_name}.xml
      COMMAND ${XSLTPROC_EXECUTABLE} --stringparam interfaceName ${_name}
              ${KDEPIMLIBS_DATA_DIR}/akonadi-kde/kcfg2dbus.xsl
              ${_kcfg}
              > ${CMAKE_CURRENT_BINARY_DIR}/${_name}.xml
      DEPENDS ${KDEPIMLIBS_DATA_DIR}/akonadi-kde/kcfg2dbus.xsl
              ${_kcfg}
    )
  endmacro( kcfg_generate_dbus_interface )
endif (XSLTPROC_EXECUTABLE)

if(WIN32)
    set(LIB_INSTALL_DIR ${LIB_INSTALL_DIR}
                        RUNTIME DESTINATION ${BIN_INSTALL_DIR}
                        LIBRARY DESTINATION ${LIB_INSTALL_DIR}
                        ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
endif(WIN32)

set(KDE4_ICON_DIR ${KDE4_INSTALL_DIR}/share/icons)

include_directories(
    ${KDE4_INCLUDES}
    ${KDEPIMLIBS_INCLUDE_DIRS}
    ${CMAKE_SOURCE_DIR}/skgbasemodeler
    ${CMAKE_SOURCE_DIR}/${skgbankmodeler}
)

set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}" )


########### next target ###############

set( skroogeakonadiresource_SRCS
  skroogeakonadiresource.cpp
)

install(FILES org.kde.skroogeakonadiresource.desktop DESTINATION "${CMAKE_INSTALL_PREFIX}/share/akonadi/agents" )

KCONFIG_ADD_KCFG_FILES(skroogeakonadiresource_SRCS settings.kcfgc)
KCFG_GENERATE_DBUS_INTERFACE(${CMAKE_CURRENT_SOURCE_DIR}/skroogeakonadiresource.kcfg org.kde.Akonadi.skroogeakonadi.Settings)
QT5_ADD_DBUS_ADAPTOR(skroogeakonadiresource_SRCS
  ${CMAKE_CURRENT_BINARY_DIR}/org.kde.Akonadi.skroogeakonadi.Settings.xml settings.h Settings
)

#TODO(Stephane MANKOWSKI) KF5 ADD_EXECUTABLE(akonadi_skroogeakonadi_resource RUN_UNINSTALLED ${skroogeakonadiresource_SRCS})
ADD_EXECUTABLE(akonadi_skroogeakonadi_resource ${skroogeakonadiresource_SRCS})

TARGET_LINK_LIBRARIES(akonadi_skroogeakonadi_resource ${KDE4_AKONADI_LIBS} ${KDEPIMLIBS_KCALCORE_LIBS} KF5::KIOWidgets Qt5::Core Qt5::DBus skgbasemodeler skgbankmodeler)

INSTALL(TARGETS akonadi_skroogeakonadi_resource ${INSTALL_TARGETS_DEFAULT_ARGS}  LIBRARY NAMELINK_SKIP)
