project(kalarm-package)

# search packages used by KDE
set(KDE_MIN_VERSION 4.2.0)
find_package(KDE4 4.2.0 REQUIRED)

if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
   # These definitions are all copied from FindKDE4Internal.cmake
   set(CMAKE_INSTALL_PREFIX "${KDE4_INSTALL_DIR}" CACHE PATH "KAlarm install prefix" FORCE)
   set(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Base directory for executables and libraries" FORCE)
   set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The install dir for executables" FORCE)
   set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed" FORCE)
   set(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share" CACHE PATH "Base directory for files which go to share/" FORCE)
   set(KCFG_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/config.kcfg" CACHE PATH "The install dir for kconfig files" FORCE)
   set(LOCALE_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/locale" CACHE PATH "The install dir for translations" FORCE)
   set(AUTOSTART_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/autostart" CACHE PATH "The install dir for autostart files" FORCE)
   set(XDG_APPS_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/applications/kde4" CACHE PATH "The XDG apps dir" FORCE)
   set(DATA_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/apps" CACHE PATH "The parent directory where applications can install their data" FORCE)
   set(HTML_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/doc/HTML" CACHE PATH "The HTML install dir for documentation" FORCE)
   set(KCONF_UPDATE_INSTALL_DIR "${DATA_INSTALL_DIR}/kconf_update" CACHE PATH "The kconf_update install dir" FORCE)
   set(ICON_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/icons" CACHE PATH "The icon install dir (default ${SHARE_INSTALL_PREFIX}/share/icons/)" FORCE)
   set(SERVICES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/kde4/services" CACHE PATH "The install dir for service (desktop, protocol, ...) files" FORCE)
   set(PLUGIN_INSTALL_DIR "lib${LIB_SUFFIX}/kde4" CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed" FORCE)
   set(DBUS_INTERFACES_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/dbus-1/interfaces" CACHE PATH "The kde dbus interfaces install dir" FORCE)
   set(INSTALL_TARGETS_DEFAULT_ARGS  RUNTIME DESTINATION "${BIN_INSTALL_DIR}"
                                     LIBRARY DESTINATION "${LIB_INSTALL_DIR}"
                                     ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" COMPONENT Devel )
   # on the Mac support an extra install directory for application bundles starting with cmake 2.6
   if(APPLE)
      set(INSTALL_TARGETS_DEFAULT_ARGS  ${INSTALL_TARGETS_DEFAULT_ARGS}
                                  BUNDLE DESTINATION "${BUNDLE_INSTALL_DIR}" )
   endif(APPLE)
endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)

message(STATUS "KDE Version: ${KDE_VERSION}")
include(KDE4Defaults)
include(MacroLibrary)
include(CheckIncludeFiles)
find_package(KdepimLibs REQUIRED)
macro_optional_find_package(Gettext)
macro_log_feature(GETTEXT_FOUND "Gettext" "GNU Internationalization utilities" "http://www.gnu.org" FALSE "" "Gettext is required to install language translations")

if(WIN32)
  # detect oxygen icon dir at configure time based on KDEDIRS - there may be different package installation locations
  execute_process(COMMAND "${KDE4_KDECONFIG_EXECUTABLE}" --path icon OUTPUT_VARIABLE _dir ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
  file(TO_CMAKE_PATH "${_dir}" __dir)
  find_path(KDE4_ICON_DIR oxygen PATHS
      ${__dir}
  )
  message(STATUS "using oxygen application icons from ${KDE4_ICON_DIR}")
else(WIN32)
    set (KDE4_ICON_DIR  ${CMAKE_INSTALL_PREFIX}/share/icons)
endif(WIN32)

# this macro exists to work around a stupid Mac OS X linker bug
# where it can't handle the same library being referenced multiple
# times on the linker line
macro (KDEPIM4_LINK_UNIQUE_LIBRARIES)
  target_link_libraries(${ARGN})
endmacro (KDEPIM4_LINK_UNIQUE_LIBRARIES)

add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})

if(KDE_VERSION VERSION_LESS 4.3)
  # KDE 4.2
  include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/compat ${CMAKE_SOURCE_DIR}/compat/kde4.2 ${KDEPIMLIBS_INCLUDE_DIR} ${KDE4_INCLUDES} ${QT_QTDBUS_INCLUDE_DIR})
elseif(KDE_VERSION VERSION_LESS 4.3.80)
  # KDE 4.3
  include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/compat ${KDEPIMLIBS_INCLUDE_DIR} ${KDE4_INCLUDES} ${QT_QTDBUS_INCLUDE_DIR})
else(KDE_VERSION VERSION_LESS 4.3)
  # KDE >= 4.4
  include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/compat ${CMAKE_SOURCE_DIR}/compat/libkdepim ${KDEPIMLIBS_INCLUDE_DIR} ${KDE4_INCLUDES} ${QT_QTDBUS_INCLUDE_DIR})
endif(KDE_VERSION VERSION_LESS 4.3)

add_subdirectory(compat)
add_subdirectory(kalarm)
add_subdirectory(doc)
if (GETTEXT_FOUND)
  macro_optional_add_subdirectory(po)
endif (GETTEXT_FOUND)
