project(kalarm)

add_definitions(-DKDE_DEFAULT_DEBUG_AREA=5950)
message(STATUS "X11 lib ${X11_X11_LIB}")

if (EXISTS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml)
   set(KMAIL_IFACE_FOUND TRUE)
   #message(STATUS "KMail D-Bus interface found: ${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml")
   add_definitions(-DKMAIL_SUPPORTED)
   find_program(KMAIL_FOUND NAMES kmail PATHS ${KDE4_BIN_INSTALL_DIR} NO_DEFAULT_PATH)
   if (KMAIL_FOUND)
      message(STATUS "Found KMail: ${KMAIL_FOUND}")
   else (KMAIL_FOUND)
      message(STATUS "Could not find KMail (${KDE4_BIN_INSTALL_DIR}/kmail)")
   endif (KMAIL_FOUND)
else (EXISTS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml)
   message(STATUS "Could not find KMail D-Bus interface (${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml)")
endif (EXISTS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml)
macro_log_feature(KMAIL_FOUND "KMail" "KDE email client" "http://kde.org" FALSE "" "Needed for email integration with KMail")

find_program(KTTSD_FOUND NAMES kttsd PATHS ${KDE4_BIN_INSTALL_DIR} NO_DEFAULT_PATH)
if (KTTSD_FOUND)
   message(STATUS "Found KTTSD: ${KTTSD_FOUND}")
else (KTTSD_FOUND)
   message(STATUS "Could not find KTTSD (${KDE4_BIN_INSTALL_DIR}/kttsd)")
endif (KTTSD_FOUND)
macro_log_feature(KTTSD_FOUND "KTTSD" "KDE text to speech facility (from KDE accessibility module)" "http://kde.org" FALSE "" "Needed to speak text message alarms")

include_directories(
${CMAKE_CURRENT_BINARY_DIR}
        ./ 
	./cal
	./lib 
	./resources 
) 

add_subdirectory( cal ) 
add_subdirectory( resources ) 
add_subdirectory( appicons ) 
add_subdirectory( pixmaps ) 
add_subdirectory( autostart ) 


########### next target ###############
set(libkalarm_SRCS
	lib/buttongroup.cpp 
	lib/checkbox.cpp 
	lib/colourbutton.cpp 
	lib/combobox.cpp 
	lib/dateedit.cpp 
	lib/datetime.cpp 
	lib/desktop.cpp
	lib/filedialog.cpp
	lib/itembox.cpp
	lib/kalocale.cpp
	lib/label.cpp 
	lib/messagebox.cpp 
	lib/packedlayout.cpp 
	lib/pushbutton.cpp 
	lib/radiobutton.cpp 
	lib/timeedit.cpp 
	lib/timespinbox.cpp 
	lib/timeperiod.cpp 
	lib/timezonecombo.cpp
	lib/shellprocess.cpp 
	lib/slider.cpp 
	lib/spinbox.cpp 
	lib/spinbox2.cpp 
	lib/stackedwidgets.cpp
	lib/lineedit.cpp 
	lib/synchtimer.cpp
)

set(kalarm_bin_SRCS ${libkalarm_SRCS}
   birthdaydlg.cpp 
   birthdaymodel.cpp
   main.cpp 
   kaevent.cpp 
   editdlg.cpp 
   editdlgtypes.cpp
   soundpicker.cpp 
   sounddlg.cpp 
   alarmcalendar.cpp 
   undo.cpp 
   kalarmapp.cpp 
   mainwindowbase.cpp 
   mainwindow.cpp 
   messagewin.cpp 
   preferences.cpp 
   prefdlg.cpp 
   traywindow.cpp 
   dbushandler.cpp 
   recurrenceedit.cpp 
   deferdlg.cpp 
   functions.cpp 
   fontcolour.cpp 
   fontcolourbutton.cpp 
   alarmtimewidget.cpp 
   specialactions.cpp 
   reminder.cpp 
   startdaytimer.cpp 
   eventlistview.cpp 
   eventlistmodel.cpp
   alarmlistfiltermodel.cpp
   alarmlistdelegate.cpp
   alarmlistview.cpp 
   templatelistfiltermodel.cpp
   templatelistview.cpp 
   templatepickdlg.cpp 
   templatedlg.cpp 
   templatemenuaction.cpp 
   kamail.cpp 
   timeselector.cpp 
   latecancel.cpp 
   repetitionbutton.cpp 
   emailidcombo.cpp 
   find.cpp 
   pickfileradio.cpp 
   newalarmaction.cpp
   calendarcompat.cpp
   resourceconfigdialog.cpp
   resourcemodelview.cpp
   resourceselector.cpp
   commandoptions.cpp
)
qt4_add_dbus_adaptor(kalarm_bin_SRCS org.kde.kalarm.kalarm.xml dbushandler.h DBusHandler)
if (KMAIL_IFACE_FOUND)
   qt4_add_dbus_interfaces(kalarm_bin_SRCS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.kmail.kmail.xml)
endif (KMAIL_IFACE_FOUND)
if (NOT EXISTS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)
   message(FATAL_ERROR "Could not find kdelibs KSpeech interface (${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)")
endif (NOT EXISTS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)
qt4_add_dbus_interfaces(kalarm_bin_SRCS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)

kde4_add_kcfg_files(kalarm_bin_SRCS GENERATE_MOC kalarmconfig.kcfgc)

#if (UNIX)
kde4_add_app_icon(kalarm_bin_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/appicons/ox*-app-kalarm.png")
kde4_add_executable(kalarm_bin ${kalarm_bin_SRCS})

set_target_properties(kalarm_bin PROPERTIES OUTPUT_NAME kalarm)

if (KDE_VERSION_MINOR LESS 3)
   target_link_libraries(kalarm_bin kalarm_resources kalarm_calendar kalarm_compat ${KDE4_KUTILS_LIBS} ${KDEPIMLIBS_KCAL_LIBS} ${KDE4_KABC_LIBRARY} ${KDE4_KMIME_LIBRARY} ${KDEPIMLIBS_KPIMIDENTITIES_LIBS} ${KDEPIMLIBS_MAILTRANSPORT_LIBS} ${KDE4_PHONON_LIBS} ${X11_X11_LIB})
else (KDE_VERSION_MINOR LESS 3)
   target_link_libraries(kalarm_bin kalarm_resources kalarm_calendar kalarm_compat ${KDE4_KUTILS_LIBS} ${KDEPIMLIBS_KCAL_LIBS} ${KDE4_KABC_LIBRARY} ${KDE4_KMIME_LIBRARY} ${KDEPIMLIBS_KPIMIDENTITIES_LIBS} ${KDEPIMLIBS_MAILTRANSPORT_LIBS} ${KDEPIMLIBS_KHOLIDAYS_LIBS} ${KDE4_PHONON_LIBS} ${X11_X11_LIB})
endif (KDE_VERSION_MINOR LESS 3)

install(TARGETS kalarm_bin ${INSTALL_TARGETS_DEFAULT_ARGS} )
#endif (UNIX)

########### install files ###############

install( FILES kalarm.desktop  DESTINATION ${XDG_APPS_INSTALL_DIR} )
install( FILES kalarm.autostart.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} )
install( FILES kalarmconfig.kcfg DESTINATION ${KCFG_INSTALL_DIR})
install( FILES kalarmui.rc DESTINATION ${DATA_INSTALL_DIR}/kalarm )
install( FILES org.kde.kalarm.kalarm.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR} )
install( FILES kalarm.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR})
install( PROGRAMS kalarm-version.pl kalarm-1.2.1-general.pl kalarm-1.9.5-defaults.pl kalarm-2.0.2-general.pl kalarm-2.1.5-general.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR})

macro_display_feature_log()
