mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 10:22:50 +00:00
450 lines
12 KiB
CMake
450 lines
12 KiB
CMake
project(akonadi-kde)
|
|
|
|
add_definitions( -DKDE_DEFAULT_DEBUG_AREA=5250 )
|
|
|
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}" )
|
|
if(CMAKE_COMPILE_GCOV)
|
|
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
|
|
endif()
|
|
|
|
if (ENABLE_TESTING)
|
|
add_subdirectory( tests )
|
|
endif()
|
|
|
|
add_definitions( ${AKONADI_DEFINITIONS} )
|
|
add_definitions( -DQT_NO_CAST_FROM_ASCII )
|
|
add_definitions( -DQT_NO_CAST_TO_ASCII )
|
|
|
|
# Set the resources and agents version
|
|
configure_file(kdepimlibs-version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kdepimlibs-version.h)
|
|
|
|
# Detect the QJson version (0.8.0 is BIC)
|
|
if (QJSON_VERSION VERSION_GREATER 0.7.1)
|
|
set(USE_QJSON_0_8 TRUE)
|
|
endif()
|
|
|
|
configure_file(config-akonadi.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-akonadi.h)
|
|
|
|
include_directories(
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
)
|
|
add_subdirectory( kabc )
|
|
add_subdirectory( kcal )
|
|
add_subdirectory( kmime )
|
|
add_subdirectory( contact )
|
|
add_subdirectory( calendar )
|
|
add_subdirectory( notes )
|
|
add_subdirectory( socialutils )
|
|
add_subdirectory( xml )
|
|
|
|
include_directories(
|
|
${QT_QTDBUS_INCLUDE_DIR}
|
|
${Boost_INCLUDE_DIR}
|
|
${KDE4_INCLUDE_DIR}
|
|
${QJSON_INCLUDE_DIR}
|
|
${AKONADI_INCLUDE_DIR}
|
|
${CMAKE_CURRENT_BINARY_DIR}/../kmime
|
|
${AKONADI_INCLUDE_DIR}/akonadi/private
|
|
)
|
|
|
|
# libakonadi-kde
|
|
|
|
set( akonadikde_LIB_SRC
|
|
entity.cpp # keep it at top to not break enable-final
|
|
actionstatemanager.cpp
|
|
agentactionmanager.cpp
|
|
agentbase.cpp
|
|
agentfactory.cpp
|
|
agentfilterproxymodel.cpp
|
|
agentinstance.cpp
|
|
agentinstancecreatejob.cpp
|
|
agentinstancemodel.cpp
|
|
agentinstancewidget.cpp
|
|
agentmanager.cpp
|
|
agentsearchinterface.cpp
|
|
agenttype.cpp
|
|
agenttypemodel.cpp
|
|
agenttypewidget.cpp
|
|
agenttypedialog.cpp
|
|
asyncselectionhandler.cpp
|
|
attribute.cpp
|
|
attributefactory.cpp
|
|
cachepolicy.cpp
|
|
changemediator_p.cpp
|
|
changerecorder.cpp
|
|
changerecorder_p.cpp
|
|
changenotificationdependenciesfactory.cpp
|
|
collection.cpp
|
|
collectionattributessynchronizationjob.cpp
|
|
collectioncombobox.cpp
|
|
collectioncopyjob.cpp
|
|
collectioncreatejob.cpp
|
|
collectiondeletejob.cpp
|
|
collectionfilterproxymodel.cpp
|
|
collectionfetchjob.cpp
|
|
collectionfetchscope.cpp
|
|
collectionmodel.cpp
|
|
collectionmodel_p.cpp
|
|
collectionmodifyjob.cpp
|
|
collectionmovejob.cpp
|
|
collectionpathresolver.cpp
|
|
collectionquotaattribute.cpp
|
|
collectionrequester.cpp
|
|
collectionrightsattribute.cpp
|
|
collectionselectjob.cpp
|
|
collectionstatistics.cpp
|
|
collectionstatisticsjob.cpp
|
|
collectionstatisticsmodel.cpp
|
|
collectionstatisticsdelegate.cpp
|
|
collectionsync.cpp
|
|
cachepolicypage.cpp
|
|
collectiongeneralpropertiespage.cpp
|
|
collectionpropertiesdialog.cpp
|
|
collectionpropertiespage.cpp
|
|
conflicthandling/conflicthandler.cpp
|
|
conflicthandling/conflictresolvedialog.cpp
|
|
control.cpp
|
|
dbusconnectionpool.cpp
|
|
entitycache.cpp
|
|
entitydisplayattribute.cpp
|
|
entityhiddenattribute.cpp
|
|
entitydeletedattribute.cpp
|
|
entitymimetypefiltermodel.cpp
|
|
entityorderproxymodel.cpp
|
|
entityrightsfiltermodel.cpp
|
|
entitytreemodel.cpp
|
|
entitytreemodel_p.cpp
|
|
entitytreeview.cpp
|
|
entityannotationsattribute.cpp
|
|
erroroverlay.cpp
|
|
etmviewstatesaver.cpp
|
|
exception.cpp
|
|
favoritecollectionsmodel.cpp
|
|
firstrun.cpp
|
|
gid/gidextractor.cpp
|
|
indexpolicyattribute.cpp
|
|
item.cpp
|
|
itemcreatejob.cpp
|
|
itemcopyjob.cpp
|
|
itemdeletejob.cpp
|
|
itemfetchjob.cpp
|
|
itemfetchscope.cpp
|
|
itemmodel.cpp
|
|
itemmonitor.cpp
|
|
itemmovejob.cpp
|
|
itemsearchjob.cpp
|
|
itemserializer.cpp
|
|
itemserializerplugin.cpp
|
|
itemmodifyjob.cpp
|
|
itemsync.cpp
|
|
invalidatecachejob.cpp
|
|
job.cpp
|
|
kdsignalblocker.cpp
|
|
kjobprivatebase.cpp
|
|
linkjob.cpp
|
|
mimetypechecker.cpp
|
|
monitor.cpp
|
|
monitor_p.cpp
|
|
notificationsource.cpp
|
|
partfetcher.cpp
|
|
pastehelper.cpp
|
|
persistentsearchattribute.cpp
|
|
preprocessorbase.cpp
|
|
preprocessorbase_p.cpp
|
|
protocolhelper.cpp
|
|
progressspinnerdelegate.cpp
|
|
recursivecollectionfilterproxymodel.cpp
|
|
recursiveitemfetchjob.cpp
|
|
recursivemover.cpp
|
|
resourcebase.cpp
|
|
resourcescheduler.cpp
|
|
resourceselectjob.cpp
|
|
resourcesynchronizationjob.cpp
|
|
searchcreatejob.cpp
|
|
searchquery.cpp
|
|
searchresultjob.cpp
|
|
selectionproxymodel.cpp
|
|
selftestdialog.cpp
|
|
session.cpp
|
|
servermanager.cpp
|
|
specialcollectionattribute.cpp
|
|
specialcollections.cpp
|
|
specialcollectionshelperjobs.cpp
|
|
specialcollectionsrequestjob.cpp
|
|
specialcollectionsdiscoveryjob.cpp
|
|
standardactionmanager.cpp
|
|
statisticsproxymodel.cpp
|
|
subscriptiondialog.cpp
|
|
subscriptionjob.cpp
|
|
subscriptionmodel.cpp
|
|
trashjob.cpp
|
|
trashrestorejob.cpp
|
|
trashsettings.cpp
|
|
trashfilterproxymodel.cpp
|
|
transactionjobs.cpp
|
|
transactionsequence.cpp
|
|
transportresourcebase.cpp
|
|
typepluginloader.cpp
|
|
attributeentity.cpp
|
|
tag.cpp
|
|
tagmodel.cpp
|
|
tagmodel_p.cpp
|
|
tagattribute.cpp
|
|
tagcreatejob.cpp
|
|
tagmodifyjob.cpp
|
|
tagfetchscope.cpp
|
|
tagfetchjob.cpp
|
|
tagdeletejob.cpp
|
|
tageditwidget.cpp
|
|
tagmanagementdialog.cpp
|
|
tagselectiondialog.cpp
|
|
tagwidget.cpp
|
|
unlinkjob.cpp
|
|
# Temporary until ported to Qt-plugin framework
|
|
pluginloader.cpp
|
|
resourcesettings.cpp
|
|
renamefavoritedialog.cpp
|
|
recentcollectionaction.cpp
|
|
dragdropmanager.cpp
|
|
collectionview.cpp
|
|
entitylistview.cpp
|
|
entitytreeviewstatesaver.cpp
|
|
itemview.cpp
|
|
)
|
|
|
|
if (KDEPIM_MOBILE_UI)
|
|
set( akonadikde_LIB_SRC ${akonadikde_LIB_SRC}
|
|
collectiondialog_mobile.cpp
|
|
)
|
|
else()
|
|
set( akonadikde_LIB_SRC ${akonadikde_LIB_SRC}
|
|
collectiondialog_desktop.cpp
|
|
)
|
|
endif()
|
|
|
|
# DBus interfaces and adaptors
|
|
set(akonadi_xml ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.NotificationManager.xml)
|
|
set_source_files_properties(${akonadi_xml} PROPERTIES INCLUDE "notificationmessagev3_p.h" )
|
|
qt4_add_dbus_interface( akonadikde_LIB_SRC ${akonadi_xml} notificationmanagerinterface )
|
|
|
|
set(akonadi_xml ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.NotificationSource.xml)
|
|
set_source_files_properties(${akonadi_xml} PROPERTIES INCLUDE "notificationmessagev3_p.h" )
|
|
qt4_add_dbus_interface( akonadikde_LIB_SRC ${akonadi_xml} notificationsourceinterface )
|
|
|
|
qt4_add_dbus_interfaces( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.AgentManager.xml )
|
|
qt4_add_dbus_interfaces( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Tracer.xml )
|
|
qt4_add_dbus_interfaces( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Agent.Control.xml )
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Resource.xml resourcebase.h Akonadi::ResourceBase resourceadaptor Akonadi__ResourceAdaptor )
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Preprocessor.xml preprocessorbase_p.h Akonadi::PreprocessorBasePrivate preprocessoradaptor Akonadi__PreprocessorAdaptor )
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Agent.Status.xml agentbase.h Akonadi::AgentBase statusadaptor Akonadi__StatusAdaptor )
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC ${AKONADI_DBUS_INTERFACES_DIR}/org.freedesktop.Akonadi.Agent.Control.xml agentbase.h Akonadi::AgentBase controladaptor Akonadi__ControlAdaptor)
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC interfaces/org.freedesktop.Akonadi.Resource.Transport.xml transportresourcebase_p.h Akonadi::TransportResourceBasePrivate transportadaptor Akonadi__TransportAdaptor )
|
|
qt4_add_dbus_adaptor( akonadikde_LIB_SRC interfaces/org.freedesktop.Akonadi.Agent.Search.xml agentsearchinterface_p.h Akonadi::AgentSearchInterfacePrivate searchadaptor Akonadi__SearchAdaptor )
|
|
|
|
|
|
kde4_add_kcfg_files( akonadikde_LIB_SRC resourcebasesettings.kcfgc )
|
|
install( FILES resourcebase.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
|
|
|
|
add_definitions(
|
|
-DAKONADI_DEPRECATED=
|
|
)
|
|
# This one won't be needed when CMake 2.8.13 is depended on.
|
|
add_definitions(
|
|
-DAKONADI_DEPRECATED_EXPORT=AKONADI_EXPORT
|
|
)
|
|
|
|
add_library( akonadi-kde ${LIBRARY_TYPE} ${akonadikde_LIB_SRC} )
|
|
if(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.12)
|
|
set_property(TARGET akonadi-kde PROPERTY DEFINE_SYMBOL akonadi_kde)
|
|
endif()
|
|
generate_export_header(akonadi-kde BASE_NAME akonadi)
|
|
|
|
if (ENABLE_TESTING)
|
|
set(AKONADI_TESTS_EXPORT AKONADI_EXPORT)
|
|
endif()
|
|
configure_file(akonadiprivate_export.h.in "${CMAKE_CURRENT_BINARY_DIR}/akonadiprivate_export.h")
|
|
|
|
if (ENABLE_TESTING)
|
|
set(AKONADI_TESTS_EXPORT AKONADI_EXPORT)
|
|
endif()
|
|
configure_file(akonadiprivate_export.h.in
|
|
"${CMAKE_CURRENT_BINARY_DIR}/akonadiprivate_export.h"
|
|
)
|
|
|
|
target_link_libraries( akonadi-kde ${QT_QTNETWORK_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTSQL_LIBRARY} ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${KDE4_SOLID_LIBS} ${AKONADI_COMMON_LIBRARIES} ${QJSON_LIBRARIES})
|
|
set( AKONADI_KDE_DEPS ${KDE4_KDEUI_LIBS} ${QT_QTDBUS_LIBRARY} ${QT_QTCORE_LIBRARY} )
|
|
|
|
if (KDEPIM_MOBILE_UI)
|
|
target_link_libraries( akonadi-kde ${QT_QTDECLARATIVE_LIBRARY} )
|
|
endif()
|
|
|
|
target_link_libraries( akonadi-kde LINK_INTERFACE_LIBRARIES ${AKONADI_KDE_DEPS})
|
|
|
|
set_target_properties( akonadi-kde PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
install( TARGETS akonadi-kde EXPORT kdepimlibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS} )
|
|
|
|
########### install files ###############
|
|
|
|
install( FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/akonadi_export.h
|
|
agentactionmanager.h
|
|
agentbase.h
|
|
agentfactory.h
|
|
agentfilterproxymodel.h
|
|
agentinstance.h
|
|
agentinstancecreatejob.h
|
|
agentinstancemodel.h
|
|
agentinstancewidget.h
|
|
agentmanager.h
|
|
agentsearchinterface.h
|
|
agenttype.h
|
|
agenttypemodel.h
|
|
agenttypewidget.h
|
|
agenttypedialog.h
|
|
attribute.h
|
|
attributefactory.h
|
|
attributeentity.h
|
|
cachepolicy.h
|
|
cachepolicypage.h
|
|
changerecorder.h
|
|
collection.h
|
|
collectionattributessynchronizationjob.h
|
|
collectioncombobox.h
|
|
collectioncopyjob.h
|
|
collectioncreatejob.h
|
|
collectiondeletejob.h
|
|
collectiondialog.h
|
|
collectionfilterproxymodel.h
|
|
collectionfetchjob.h
|
|
collectionfetchscope.h
|
|
collectionmodel.h
|
|
collectionmodifyjob.h
|
|
collectionmovejob.h
|
|
collectionpropertiesdialog.h
|
|
collectionpropertiespage.h
|
|
collectionpathresolver_p.h
|
|
collectionquotaattribute.h
|
|
collectionrequester.h
|
|
collectionstatisticsdelegate.h
|
|
collectionstatisticsmodel.h
|
|
collectionstatistics.h
|
|
collectionstatisticsjob.h
|
|
collectionutils_p.h
|
|
collectionview.h
|
|
conflicthandling/abstractdifferencesreporter.h
|
|
conflicthandling/differencesalgorithminterface.h
|
|
control.h
|
|
dbusconnectionpool.h
|
|
entity.h
|
|
entitydisplayattribute.h
|
|
entityhiddenattribute.h
|
|
entitydeletedattribute.h
|
|
entitylistview.h
|
|
entitymimetypefiltermodel.h
|
|
entityrightsfiltermodel.h
|
|
entityorderproxymodel.h
|
|
entitytreemodel.h
|
|
entitytreeview.h
|
|
entitytreeviewstatesaver.h
|
|
etmviewstatesaver.h
|
|
entityannotationsattribute.h
|
|
exception.h
|
|
favoritecollectionsmodel.h
|
|
gid/gidextractorinterface.h
|
|
indexpolicyattribute.h
|
|
item.h
|
|
itemcreatejob.h
|
|
itemcopyjob.h
|
|
itemdeletejob.h
|
|
itemfetchjob.h
|
|
itemfetchscope.h
|
|
itemmodel.h
|
|
itemmodifyjob.h
|
|
itemmonitor.h
|
|
itemmovejob.h
|
|
itempayloadinternals_p.h
|
|
itemsearchjob.h
|
|
itemserializerplugin.h
|
|
itemsync.h
|
|
itemview.h
|
|
job.h
|
|
linkjob.h
|
|
mimetypechecker.h
|
|
monitor.h
|
|
partfetcher.h
|
|
persistentsearchattribute.h
|
|
preprocessorbase.h
|
|
qtest_akonadi.h
|
|
resourcebase.h
|
|
resourcesynchronizationjob.h
|
|
recursivecollectionfilterproxymodel.h
|
|
recursiveitemfetchjob.h
|
|
searchcreatejob.h
|
|
searchquery.h
|
|
selectionproxymodel.h
|
|
session.h
|
|
servermanager.h
|
|
specialcollections.h
|
|
specialcollectionsrequestjob.h
|
|
specialcollectionsdiscoveryjob.h
|
|
standardactionmanager.h
|
|
statisticsproxymodel.h
|
|
tagattribute.h
|
|
tag.h
|
|
tagmodel.h
|
|
tagmodifyjob.h
|
|
tagcreatejob.h
|
|
tagfetchjob.h
|
|
tagfetchscope.h
|
|
tagdeletejob.h
|
|
tagwidget.h
|
|
tagmanagementdialog.h
|
|
tagselectiondialog.h
|
|
trashjob.h
|
|
trashrestorejob.h
|
|
trashsettings.h
|
|
trashfilterproxymodel.h
|
|
transactionjobs.h
|
|
transactionsequence.h
|
|
transportresourcebase.h
|
|
unlinkjob.h
|
|
resourcesettings.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/resourcebasesettings.h
|
|
DESTINATION ${INCLUDE_INSTALL_DIR}/akonadi COMPONENT Devel
|
|
)
|
|
|
|
install( FILES
|
|
collectionpathresolver_p.h
|
|
DESTINATION ${INCLUDE_INSTALL_DIR}/akonadi/private COMPONENT Devel
|
|
)
|
|
|
|
install( FILES
|
|
kcfg2dbus.xsl
|
|
DESTINATION ${DATA_INSTALL_DIR}/akonadi-kde
|
|
)
|
|
|
|
if (KDEPIM_MOBILE_UI)
|
|
install( FILES
|
|
CollectionDialogMobile.qml
|
|
DESTINATION ${DATA_INSTALL_DIR}/akonadi-kde/qml
|
|
)
|
|
endif()
|
|
|
|
set(module_install_dir ${DATA_INSTALL_DIR}/cmake/modules )
|
|
install( FILES
|
|
AkonadiMacros.cmake
|
|
DESTINATION ${module_install_dir}
|
|
)
|
|
|
|
if(QT_QTDESIGNER_FOUND)
|
|
message(STATUS "Building Akonadi widgets")
|
|
kde4_add_widget_files(${CMAKE_CURRENT_SOURCE_DIR}/designer/akonadi.widgets)
|
|
|
|
kde4_add_plugin(akonadiwidgets $<TARGET_OBJECTS:akonadi_autowidgets>)
|
|
|
|
target_link_libraries(akonadiwidgets ${KDE4_KIO_LIBS} akonadi-kde)
|
|
|
|
install(TARGETS akonadiwidgets DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer)
|
|
endif()
|
|
|