kdeconnect-kde/interfaces/CMakeLists.txt

114 lines
5.7 KiB
CMake
Raw Permalink Normal View History

2019-12-21 14:16:33 +00:00
add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-interfaces\")
# geninterface generates a Qt class that is an interface to DBus
# source_file can a DBus XML definition or QObject class header that is exposed through DBus
# output_basename is the path and filename that will be generated (.h and .cpp will be appended to this)
# The new targets are appended to the ${interfaces_SRC} variable in the parent scope.
function(geninterface source_file output_basename)
if(${source_file} MATCHES ".*\.xml$")
set(xml_file ${source_file})
else()
set(xml_file ${CMAKE_CURRENT_BINARY_DIR}/${output_basename}.xml)
qt_generate_dbus_interface(${source_file} ${xml_file})
endif()
# Fixes "redefinition of 'MediaPlayer2' as different kind of symbol"
set_source_files_properties(${xml_file} PROPERTIES NO_NAMESPACE true)
qt_add_dbus_interface(generated_sources ${xml_file} ${output_basename})
# Hack to append clazy:skip to generated files
set(fake_file ${output_basename}_replaced)
add_custom_command(OUTPUT ${fake_file}
COMMAND ${CMAKE_COMMAND} -E echo "// clazy:skip" >> ${output_basename}.h
COMMAND ${CMAKE_COMMAND} -E touch ${fake_file}
DEPENDS ${output_basename}.h
)
set(interfaces_SRC ${interfaces_SRC} ${generated_sources} ${fake_file} PARENT_SCOPE)
endfunction()
set(interfaces_SRC
dbusinterfaces.cpp
devicesmodel.cpp
notificationsmodel.cpp
devicessortproxymodel.cpp
(WIP) Upgrade Telephony plugin to read SMS history (KDE side) Summary: For real usecases of SMS support, we will almost always need access to the message history in some way Specifically resolve T8338 Incidentally resolve T6651 since Telephony shall no longer create a notification Test Plan: Setup: - Build corresponding Android-side diff (D11698) - Build this diff Step 1: Does anything at all work? - Put a breakpoint in the handleBatchMessages method of the telephony plugin, ideally after constructing a Message object - Use DBus to poke /modules/kdeconnect/devices/<deviceID>/telephony.requestAllConversations() - Verify that the constructed Message is one you sent or received and that it is the most recent in the corresponding conversation Step 2: DBus - Open the Interface org.kde.kdeconnect.device.conversations of /modules/kdeconnect/devices/<deviceId> - Poke activeConversations and verify an empty array is returned - Poke requestAllConversationThreads - Poke activeConversations and verify that a list of numbers has been returned. These are conversationIds - Use a conversationId to call getFirstFromConversation - Verify that the returned Message object is one which you recognize - Note that if the message is an MMS it will be blank and meaningless. Try a different conversationId. MMS support "coming soon!" Step 3: SMS App - Use ccmake (or similar) to set SMSAPP_ENABLE to ON - Build the project - Run ./bin/kdeconnect-sms - Verify that the app shows a list of everyone you have an SMS conversation with (MMS messages are stripped out) - If you have the Contacts plugin working, verify that most contacts have their name and photo instead of their phone number Reviewers: #kde_connect, nicolasfella, apol Reviewed By: #kde_connect, nicolasfella, apol Subscribers: andyholmes, apol, nicolasfella, #kde_connect Tags: #kde_connect Maniphest Tasks: T8338, T6651 Differential Revision: https://phabricator.kde.org/D11854
2018-05-25 15:21:56 +01:00
conversationmessage.cpp
remotecommandsmodel.cpp
remotesinksmodel.cpp
devicespluginfilterproxymodel.cpp
pluginmodel.cpp
commandsmodel.cpp
)
# KDE Connect interfaces
geninterface(${PROJECT_SOURCE_DIR}/core/daemon.h generated/daemoninterface)
geninterface(${PROJECT_SOURCE_DIR}/core/device.h generated/deviceinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/battery/batteryplugin.h generated/batteryinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/connectivity-report/connectivity_reportplugin.h generated/connectivityinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/sftp/sftpplugin.h generated/devicesftpinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/notifications/notificationsplugin.h generated/devicenotificationsinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/findmyphone/findmyphoneplugin.h generated/devicefindmyphoneinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/notifications/notification.h generated/notificationinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/mprisremote/mprisremoteplugin.h generated/mprisremoteinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/remotecontrol/remotecontrolplugin.h generated/remotecontrolinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/lockdevice/lockdeviceplugin.h generated/lockdeviceinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/remotecommands/remotecommandsplugin.h generated/remotecommandsinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/remotekeyboard/remotekeyboardplugin.h generated/remotekeyboardinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/sms/smsplugin.h generated/smsinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/sms/conversationsdbusinterface.h generated/conversationsinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/share/shareplugin.h generated/shareinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/remotesystemvolume/remotesystemvolumeplugin.h generated/remotesystemvolumeinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/bigscreen/bigscreenplugin.h generated/bigscreeninterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/virtualmonitor/virtualmonitorplugin.h generated/virtualmonitorinterface)
geninterface(${PROJECT_SOURCE_DIR}/plugins/clipboard/clipboardplugin.h generated/deviceclipboardinterface)
# System dbus interfaces
if (UNIX AND NOT APPLE)
geninterface(systeminterfaces/org.freedesktop.login1.xml generated/systeminterfaces/login1)
geninterface(systeminterfaces/org.freedesktop.ScreenSaver.xml generated/systeminterfaces/screensaver)
geninterface(systeminterfaces/org.freedesktop.DBus.Properties.xml generated/systeminterfaces/dbusproperties)
geninterface(systeminterfaces/org.mpris.MediaPlayer2.Player.xml generated/systeminterfaces/mprisplayer)
geninterface(systeminterfaces/org.mpris.MediaPlayer2.xml generated/systeminterfaces/mprisroot)
geninterface(systeminterfaces/org.freedesktop.portal.RemoteDesktop.xml generated/systeminterfaces/remotedesktop)
endif()
add_library(kdeconnectinterfaces STATIC)
set_property(TARGET kdeconnectinterfaces PROPERTY POSITION_INDEPENDENT_CODE ON)
target_sources(kdeconnectinterfaces PRIVATE ${interfaces_SRC})
ecm_qt_declare_logging_category(kdeconnectinterfaces
HEADER interfaces_conversation_message_debug.h
IDENTIFIER CONVERSATION_MESSAGE_LOGGING_CATEGORY CATEGORY_NAME kdeconnect.interfaces.conversationmessage
DEFAULT_SEVERITY Warning
EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (conversation message)")
ecm_qt_declare_logging_category(kdeconnectinterfaces
HEADER interfaces_debug.h
IDENTIFIER KDECONNECT_INTERFACES CATEGORY_NAME kdeconnect.interfaces
DEFAULT_SEVERITY Warning
EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (interfaces)")
set_target_properties(kdeconnectinterfaces PROPERTIES
VERSION ${KDECONNECT_VERSION}
SOVERSION ${KDECONNECT_VERSION_MAJOR}
)
generate_export_header(kdeconnectinterfaces EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectinterfaces_export.h BASE_NAME KDEConnectInterfaces)
target_link_libraries(kdeconnectinterfaces
LINK_PUBLIC
Qt::Gui
Qt::DBus
KF6::ConfigCore
LINK_PRIVATE
kdeconnectcore
KF6::I18n
2019-06-09 16:28:49 +01:00
kdeconnectcore
KF6::CoreAddons
)
install(TARGETS kdeconnectinterfaces EXPORT kdeconnectLibraryTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)