Warning, /network/kdeconnect-kde/interfaces/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-interfaces\")
0002 
0003 # geninterface generates a Qt class that is an interface to DBus
0004 # source_file can a DBus XML definition or QObject class header that is exposed through DBus
0005 # output_basename is the path and filename that will be generated (.h and .cpp will be appended to this)
0006 # The new targets are appended to the ${interfaces_SRC} variable in the parent scope.
0007 function(geninterface source_file output_basename)
0008     if(${source_file} MATCHES ".*\.xml$")
0009         set(xml_file ${source_file})
0010     else()
0011         set(xml_file ${CMAKE_CURRENT_BINARY_DIR}/${output_basename}.xml)
0012         qt_generate_dbus_interface(${source_file} ${xml_file})
0013     endif()
0014 
0015     # Fixes "redefinition of 'MediaPlayer2' as different kind of symbol"
0016     set_source_files_properties(${xml_file} PROPERTIES NO_NAMESPACE true)
0017 
0018     qt_add_dbus_interface(generated_sources ${xml_file} ${output_basename})
0019 
0020     # Hack to append clazy:skip to generated files
0021     set(fake_file ${output_basename}_replaced)
0022     add_custom_command(OUTPUT ${fake_file}
0023         COMMAND ${CMAKE_COMMAND} -E echo "// clazy:skip" >> ${output_basename}.h
0024         COMMAND ${CMAKE_COMMAND} -E touch ${fake_file}
0025         DEPENDS ${output_basename}.h
0026     )
0027 
0028     set(interfaces_SRC ${interfaces_SRC} ${generated_sources} ${fake_file} PARENT_SCOPE)
0029 endfunction()
0030 
0031 set(interfaces_SRC
0032     dbusinterfaces.cpp
0033     devicesmodel.cpp
0034     notificationsmodel.cpp
0035     devicessortproxymodel.cpp
0036     conversationmessage.cpp
0037     remotecommandsmodel.cpp
0038     remotesinksmodel.cpp
0039     devicespluginfilterproxymodel.cpp
0040     pluginmodel.cpp
0041     commandsmodel.cpp
0042 )
0043 
0044 # KDE Connect interfaces
0045 geninterface(${PROJECT_SOURCE_DIR}/core/daemon.h generated/daemoninterface)
0046 geninterface(${PROJECT_SOURCE_DIR}/core/device.h generated/deviceinterface)
0047 geninterface(${PROJECT_SOURCE_DIR}/plugins/battery/batteryplugin.h generated/batteryinterface)
0048 geninterface(${PROJECT_SOURCE_DIR}/plugins/connectivity-report/connectivity_reportplugin.h generated/connectivityinterface)
0049 geninterface(${PROJECT_SOURCE_DIR}/plugins/sftp/sftpplugin.h generated/devicesftpinterface)
0050 geninterface(${PROJECT_SOURCE_DIR}/plugins/notifications/notificationsplugin.h generated/devicenotificationsinterface)
0051 geninterface(${PROJECT_SOURCE_DIR}/plugins/findmyphone/findmyphoneplugin.h generated/devicefindmyphoneinterface)
0052 geninterface(${PROJECT_SOURCE_DIR}/plugins/notifications/notification.h generated/notificationinterface)
0053 geninterface(${PROJECT_SOURCE_DIR}/plugins/mprisremote/mprisremoteplugin.h generated/mprisremoteinterface)
0054 geninterface(${PROJECT_SOURCE_DIR}/plugins/remotecontrol/remotecontrolplugin.h generated/remotecontrolinterface)
0055 geninterface(${PROJECT_SOURCE_DIR}/plugins/lockdevice/lockdeviceplugin.h generated/lockdeviceinterface)
0056 geninterface(${PROJECT_SOURCE_DIR}/plugins/remotecommands/remotecommandsplugin.h generated/remotecommandsinterface)
0057 geninterface(${PROJECT_SOURCE_DIR}/plugins/remotekeyboard/remotekeyboardplugin.h generated/remotekeyboardinterface)
0058 geninterface(${PROJECT_SOURCE_DIR}/plugins/sms/smsplugin.h generated/smsinterface)
0059 geninterface(${PROJECT_SOURCE_DIR}/plugins/sms/conversationsdbusinterface.h generated/conversationsinterface)
0060 geninterface(${PROJECT_SOURCE_DIR}/plugins/share/shareplugin.h generated/shareinterface)
0061 geninterface(${PROJECT_SOURCE_DIR}/plugins/remotesystemvolume/remotesystemvolumeplugin.h generated/remotesystemvolumeinterface)
0062 geninterface(${PROJECT_SOURCE_DIR}/plugins/bigscreen/bigscreenplugin.h generated/bigscreeninterface)
0063 geninterface(${PROJECT_SOURCE_DIR}/plugins/virtualmonitor/virtualmonitorplugin.h generated/virtualmonitorinterface)
0064 geninterface(${PROJECT_SOURCE_DIR}/plugins/clipboard/clipboardplugin.h generated/deviceclipboardinterface)
0065 
0066 # System dbus interfaces
0067 if (UNIX AND NOT APPLE)
0068     geninterface(systeminterfaces/org.freedesktop.login1.xml generated/systeminterfaces/login1)
0069     geninterface(systeminterfaces/org.freedesktop.ScreenSaver.xml generated/systeminterfaces/screensaver)
0070     geninterface(systeminterfaces/org.freedesktop.DBus.Properties.xml generated/systeminterfaces/dbusproperties)
0071     geninterface(systeminterfaces/org.mpris.MediaPlayer2.Player.xml generated/systeminterfaces/mprisplayer)
0072     geninterface(systeminterfaces/org.mpris.MediaPlayer2.xml generated/systeminterfaces/mprisroot)
0073     geninterface(systeminterfaces/org.freedesktop.portal.RemoteDesktop.xml generated/systeminterfaces/remotedesktop)
0074 endif()
0075 
0076 add_library(kdeconnectinterfaces STATIC)
0077 set_property(TARGET kdeconnectinterfaces PROPERTY POSITION_INDEPENDENT_CODE ON)
0078 
0079 target_sources(kdeconnectinterfaces PRIVATE ${interfaces_SRC})
0080 
0081 ecm_qt_declare_logging_category(kdeconnectinterfaces
0082     HEADER interfaces_conversation_message_debug.h
0083     IDENTIFIER CONVERSATION_MESSAGE_LOGGING_CATEGORY CATEGORY_NAME kdeconnect.interfaces.conversationmessage
0084     DEFAULT_SEVERITY Warning
0085     EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (conversation message)")
0086 
0087 ecm_qt_declare_logging_category(kdeconnectinterfaces
0088     HEADER interfaces_debug.h
0089     IDENTIFIER KDECONNECT_INTERFACES CATEGORY_NAME kdeconnect.interfaces
0090     DEFAULT_SEVERITY Warning
0091     EXPORT kdeconnect-kde DESCRIPTION "kdeconnect (interfaces)")
0092 
0093 
0094 set_target_properties(kdeconnectinterfaces PROPERTIES
0095     VERSION ${KDECONNECT_VERSION}
0096     SOVERSION ${KDECONNECT_VERSION_MAJOR}
0097 )
0098 
0099 generate_export_header(kdeconnectinterfaces EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectinterfaces_export.h BASE_NAME KDEConnectInterfaces)
0100 
0101 target_link_libraries(kdeconnectinterfaces
0102 LINK_PUBLIC
0103     Qt::Gui
0104     Qt::DBus
0105     KF6::ConfigCore
0106 LINK_PRIVATE
0107     kdeconnectcore
0108     KF6::I18n
0109     kdeconnectcore
0110     KF6::CoreAddons
0111 )
0112 
0113 install(TARGETS kdeconnectinterfaces EXPORT kdeconnectLibraryTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP)