kde-playground/kdepim/kalarm/CMakeLists.txt
2015-09-25 11:03:31 +00:00

255 lines
7.5 KiB
CMake

project(kalarm)
add_definitions(-DKDE_DEFAULT_DEBUG_AREA=5950)
add_definitions(-DQT_STRICT_ITERATORS)
add_definitions( -DQT_NO_CAST_FROM_ASCII )
add_definitions( -DQT_NO_CAST_TO_ASCII )
option(KALARM_USE_AKONADI "Build to use Akonadi" ON)
# Kalarm from kdepim master needs kdepimlibs 4.7
if(${KDE_VERSION} VERSION_LESS 4.6.40)
set(KALARM_USE_AKONADI FALSE)
endif()
if(KALARM_USE_KRESOURCES AND KALARM_USE_AKONADI)
message(STATUS "Kalarmcal (in kdepimlibs) was built to use KResources, not Akonadi. KAlarm will NOT be built with Akonadi support.")
set(KALARM_USE_AKONADI FALSE)
elseif(NOT KALARM_USE_KRESOURCES AND NOT KALARM_USE_AKONADI)
message(STATUS "Kalarmcal (in kdepimlibs) was built to use Akonadi, not KResources. KAlarm will be built WITH Akonadi support.")
set(KALARM_USE_AKONADI TRUE)
endif()
if(KALARM_USE_AKONADI)
add_definitions(-DUSE_AKONADI)
else()
add_definitions(-DUSE_KRESOURCES)
add_definitions(
-DKRESOURCES_DEPRECATED=
-DKABC_DEPRECATED=
-DKCAL_DEPRECATED=
)
# This one won't be needed when CMake 2.8.13 is depended on.
add_definitions(
-DKRESOURCES_DEPRECATED_EXPORT=KRESOURCES_EXPORT
-DKABC_DEPRECATED_EXPORT=KABC_EXPORT
-DKCAL_DEPRECATED_EXPORT=KCAL_EXPORT
)
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
if(KALARM_USE_AKONADI)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/
${CMAKE_CURRENT_SOURCE_DIR}/lib
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/libkdepim/
${Boost_INCLUDE_DIR}
)
else()
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/
${CMAKE_CURRENT_SOURCE_DIR}/lib
${CMAKE_CURRENT_SOURCE_DIR}/resources
${CMAKE_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/libkdepim/
${Boost_INCLUDE_DIR}
)
endif()
if(NOT KALARM_USE_AKONADI)
add_subdirectory(resources)
endif()
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/desktop.cpp
lib/filedialog.cpp
lib/groupbox.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
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
alarmtime.cpp
alarmtimewidget.cpp
specialactions.cpp
reminder.cpp
startdaytimer.cpp
eventlistview.cpp
alarmlistdelegate.cpp
alarmlistview.cpp
templatelistview.cpp
kamail.cpp
timeselector.cpp
latecancel.cpp
repetitionbutton.cpp
emailidcombo.cpp
find.cpp
pickfileradio.cpp
newalarmaction.cpp
commandoptions.cpp
resourceselector.cpp
templatepickdlg.cpp
templatedlg.cpp
templatemenuaction.cpp
wakedlg.cpp
)
if(KALARM_USE_AKONADI)
set(kalarm_bin_SRCS ${kalarm_bin_SRCS}
akonadimodel.cpp
akonadiresourcecreator.cpp
collectionmodel.cpp
collectionsearch.cpp
itemlistmodel.cpp
calendarmigrator.cpp
eventid.cpp
)
else()
set(kalarm_bin_SRCS ${kalarm_bin_SRCS}
calendarcompat.cpp
eventlistmodel.cpp
alarmlistfiltermodel.cpp
resourceconfigdialog.cpp
resourcemodelview.cpp
templatelistfiltermodel.cpp
)
endif()
qt4_add_dbus_adaptor(kalarm_bin_SRCS org.kde.kalarm.kalarm.xml dbushandler.h DBusHandler)
if (KMAIL_SUPPORTED)
qt4_add_dbus_interfaces(kalarm_bin_SRCS ${CMAKE_BINARY_DIR}/kmail/org.kde.kmail.kmail.xml)
endif ()
qt4_add_dbus_interfaces(kalarm_bin_SRCS ${KDE4_DBUS_INTERFACES_DIR}/org.kde.KSpeech.xml)
if(KALARM_USE_AKONADI)
kcfg_generate_dbus_interface(${CMAKE_CURRENT_SOURCE_DIR}/kalarmresource.kcfg org.kde.Akonadi.KAlarm.Settings)
qt4_add_dbus_interface(kalarm_bin_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.Akonadi.KAlarm.Settings.xml kalarmsettings KAlarmSettings)
kcfg_generate_dbus_interface(${CMAKE_CURRENT_SOURCE_DIR}/kalarmdirresource.kcfg org.kde.Akonadi.KAlarmDir.Settings)
qt4_add_dbus_interface(kalarm_bin_SRCS ${CMAKE_CURRENT_BINARY_DIR}/org.kde.Akonadi.KAlarmDir.Settings.xml kalarmdirsettings KAlarmDirSettings)
qt4_add_dbus_interfaces(kalarm_bin_SRCS ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Agent.Control.xml)
# qt4_add_dbus_adaptor(kalarm_bin_SRCS ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Agent.Control.xml agentbase.h Akonadi::AgentBase controladaptor Akonadi__ControlAdaptor)
endif()
kde4_add_kcfg_files(kalarm_bin_SRCS GENERATE_MOC kalarmconfig.kcfgc)
#if (UNIX)
add_executable(kalarm_bin ${kalarm_bin_SRCS})
if (KMAIL_SUPPORTED)
add_dependencies(kalarm_bin kmail_xml)
endif ()
set_target_properties(kalarm_bin PROPERTIES OUTPUT_NAME kalarm)
if(KALARM_USE_AKONADI)
target_link_libraries(kalarm_bin
${KDEPIMLIBS_KALARMCAL_LIBS}
${KDEPIMLIBS_KCALCORE_LIBS}
${KDEPIMLIBS_KCALUTILS_LIBS}
${KDEPIMLIBS_KABC_LIBS}
${KDEPIMLIBS_KMIME_LIBS}
${KDEPIMLIBS_KPIMIDENTITIES_LIBS}
${KDEPIMLIBS_MAILTRANSPORT_LIBS}
${KDEPIMLIBS_AKONADI_LIBS}
${KDEPIMLIBS_AKONADI_KMIME_LIBS}
${KDEPIMLIBS_AKONADI_CONTACT_LIBS}
${KDEPIMLIBS_KHOLIDAYS_LIBS}
${KDEPIMLIBS_KPIMUTILS_LIBS}
kdepim
${KDE4_KCMUTILS_LIBS}
${KDE4_PHONON_LIBS}
${X11_X11_LIB}
)
else()
target_link_libraries(kalarm_bin
kalarm_resources
${KDEPIMLIBS_KALARMCAL_LIBS}
${KDEPIMLIBS_KCAL_LIBS}
${KDEPIMLIBS_KABC_LIBS}
${KDEPIMLIBS_KMIME_LIBS}
${KDEPIMLIBS_KPIMIDENTITIES_LIBS}
${KDEPIMLIBS_MAILTRANSPORT_LIBS}
${KDEPIMLIBS_AKONADI_LIBS}
${KDEPIMLIBS_AKONADI_KMIME_LIBS}
${KDEPIMLIBS_AKONADI_CONTACT_LIBS}
${KDEPIMLIBS_KHOLIDAYS_LIBS}
${KDEPIMLIBS_KPIMUTILS_LIBS}
kdepim
${KDE4_KCMUTILS_LIBS}
${KDE4_PHONON_LIBS}
${X11_X11_LIB}
)
endif()
install(TARGETS kalarm_bin ${INSTALL_TARGETS_DEFAULT_ARGS})
#endif (UNIX)
########### install files ###############
install(PROGRAMS kalarm.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
install(PROGRAMS 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})
########### KAuth helper ###############
add_executable(kalarm_helper rtcwakeaction.cpp)
target_link_libraries(kalarm_helper ${KDE4_KDECORE_LIBS})
install(TARGETS kalarm_helper DESTINATION ${LIBEXEC_INSTALL_DIR})
kde4_install_auth_helper_files(kalarm_helper org.kde.kalarmrtcwake root)