### Install Share Plugin Configuration File Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/share/CMakeLists.txt Installs the QML configuration file for the share plugin to the KDE data directory. ```cmake install(FILES "kdeconnect_share_config.qml" DESTINATION ${KDE_INSTALL_DATADIR}/kdeconnect) ``` -------------------------------- ### Install Presenter Plugin Configuration File Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/presenter/CMakeLists.txt Installs the QML configuration file for the presenter plugin to the appropriate KDE data directory. ```cmake install(FILES "kdeconnect_presenter_config.qml" DESTINATION ${KDE_INSTALL_DATADIR}/kdeconnect) ``` -------------------------------- ### Install KDE Connect CLI Executable Source: https://github.com/kde/kdeconnect-kde/blob/master/cli/CMakeLists.txt Installs the built KDE Connect CLI executable to the runtime destination. This ensures the command-line tool is available after installation. ```cmake install(TARGETS kdeconnect-cli ${KDECONNECT_INSTALL_TARGETS_DEFAULT_ARGS} RUNTIME DESTINATION ${KDECONNECT_RUNTIME_DESTINATION}) ``` -------------------------------- ### Install Clipboard Plugin Configuration QML Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/clipboard/CMakeLists.txt Installs the clipboard plugin's QML configuration file to the KDE data directory. ```cmake install(FILES "kdeconnect_clipboard_config.qml" DESTINATION ${KDE_INSTALL_DATADIR}/kdeconnect) ``` -------------------------------- ### Install Nautilus Python Extension Source: https://github.com/kde/kdeconnect-kde/blob/master/nautilus-extension/CMakeLists.txt Installs the 'kdeconnect-share.py' file to the specified Nautilus Python extensions directory. ```cmake install(FILES kdeconnect-share.py DESTINATION ${NAUTILUS_PYTHON_EXTENSIONS_INSTALL_DIR}) ``` -------------------------------- ### Applying GPL-3.0-or-later to New Programs Source: https://github.com/kde/kdeconnect-kde/blob/master/LICENSES/GPL-3.0-or-later.txt Include these notices at the start of each source file to apply the GPL-3.0-or-later license. Ensure copyright and licensing information is clearly stated. ```text Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ``` -------------------------------- ### Install Run Command Plugin QML File Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/runcommand/CMakeLists.txt Installs the QML configuration file for the run command plugin to the appropriate KDE data directory. ```cmake install(FILES "kdeconnect_runcommand_config.qml" DESTINATION ${KDE_INSTALL_DATADIR}/kdeconnect) ``` -------------------------------- ### Install Zsh Autocompletion Script Source: https://github.com/kde/kdeconnect-kde/blob/master/cli/CMakeLists.txt Installs the Zsh autocompletion script for the KDE Connect CLI. This provides command-line tab completion for users. ```cmake install(FILES kdeconnect.zsh RENAME _kdeconnect DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR}) ``` -------------------------------- ### Install Application Icons using ecm_install_icons Source: https://github.com/kde/kdeconnect-kde/blob/master/icons/CMakeLists.txt Installs the defined application icons to the specified destination directory using the ecm_install_icons CMake function. ```cmake ecm_install_icons(ICONS ${APP_ICONS} DESTINATION ${KDE_INSTALL_ICONDIR}) ``` -------------------------------- ### Install Status Icons using ecm_install_icons Source: https://github.com/kde/kdeconnect-kde/blob/master/icons/CMakeLists.txt Installs a comprehensive set of status icons for various devices (laptops, smartphones, tablets, TVs) in different sizes (16, 22, 32) to the specified destination directory. ```cmake ecm_install_icons(ICONS ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-laptopconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-laptopdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-laptoptrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-smartphoneconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-smartphonedisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-smartphonetrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tabletconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tabletdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tablettrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tvconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tvdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/16-status-tvtrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-laptopconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-laptopdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-laptoptrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-smartphoneconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-smartphonedisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-smartphonetrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tabletconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tabletdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tablettrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tvconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tvdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/22-status-tvtrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-laptopconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-laptopdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-laptoptrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-smartphoneconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-smartphonedisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-smartphonetrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tabletconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tabletdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tablettrusted.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tvconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tvdisconnected.svg ${CMAKE_CURRENT_SOURCE_DIR}/status/32-status-tvtrusted.svg DESTINATION ${KDE_INSTALL_ICONDIR}) ``` -------------------------------- ### macOS Icon Installation Path Workaround Source: https://github.com/kde/kdeconnect-kde/blob/master/icons/CMakeLists.txt On macOS, this sets a specific installation directory for KDE Connect icons to work around a blacklist issue in the Craft build system. ```cmake if(APPLE) # Craft adds share/icons into blacklist, which will not be copied into the bundle # As a workaround, on macOS, set KDE_INSTALL_ICONDIR to another path set(KDE_INSTALL_ICONDIR share/kdeconnect-icons) endif() ``` -------------------------------- ### Define Nautilus Python Extension Install Directory Source: https://github.com/kde/kdeconnect-kde/blob/master/nautilus-extension/CMakeLists.txt Sets the installation directory for Python Nautilus extensions. This path is cached for potential user modification. ```cmake set(NAUTILUS_PYTHON_EXTENSIONS_INSTALL_DIR "share/nautilus-python/extensions" CACHE PATH "Path for python-nautilus extensions") ``` -------------------------------- ### Find Qt6 Package Source: https://github.com/kde/kdeconnect-kde/blob/master/tests/CMakeLists.txt Finds the Qt6 package with specified components. Ensure Qt6 is installed and discoverable by CMake. ```cmake find_package(Qt6 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test) ``` -------------------------------- ### GPL-3.0-or-later Interactive Mode Notice Source: https://github.com/kde/kdeconnect-kde/blob/master/LICENSES/GPL-3.0-or-later.txt If your program has terminal interaction, display this notice on startup. It informs users about warranty and redistribution conditions. ```text Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. ``` -------------------------------- ### Add Ping Plugin and Link Libraries Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/ping/CMakeLists.txt Configures the build system to add the ping plugin and link it against core KDE Connect libraries and Qt DBus. ```cmake kdeconnect_add_plugin(kdeconnect_ping SOURCES pingplugin.cpp) target_link_libraries(kdeconnect_ping kdeconnectcore Qt::DBus KF6::I18n ) ``` -------------------------------- ### Create Static Library Source: https://github.com/kde/kdeconnect-kde/blob/master/models/CMakeLists.txt Creates a static library target named 'kdeconnectmodels'. ```cmake add_library(kdeconnectmodels STATIC) ``` -------------------------------- ### Add KDE Connect Run Command Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/runcommand/CMakeLists.txt Defines the plugin and its source files. This is a standard way to add a new plugin to KDE Connect. ```cmake kdeconnect_add_plugin(kdeconnect_runcommand SOURCES runcommandplugin.cpp) ``` -------------------------------- ### Create KDE Connect Presenter Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/presenter/CMakeLists.txt Defines the presenter plugin using the kdeconnect_add_plugin macro. Includes C++ sources and compiled resources. ```cmake kdeconnect_add_plugin(kdeconnect_presenter SOURCES presenterplugin.cpp ${presenter_SRCS}) ``` -------------------------------- ### Configure MMTelephony Plugin Build Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/mmtelephony/CMakeLists.txt Defines the MMTelephony plugin target, lists its source files, and links necessary libraries including KDE Connect core, Qt DBus, ModemManagerQt, and I18n. ```cmake kdeconnect_add_plugin(kdeconnect_mmtelephony SOURCES mmtelephonyplugin.cpp) target_link_libraries(kdeconnect_mmtelephony kdeconnectcore Qt::DBus KF6::ModemManagerQt KF6::I18n ) ``` -------------------------------- ### Add Resources for Presenter Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/presenter/CMakeLists.txt Compiles Qt resource files for the presenter plugin. Ensure assets.qrc is correctly defined. ```cmake qt_add_resources(presenter_SRCS assets.qrc) ``` -------------------------------- ### Link Libraries for Presenter Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/presenter/CMakeLists.txt Links necessary libraries to the presenter plugin target. Includes core KDE Connect, Qt DBus, Qt Quick, and KF6 I18n. ```cmake target_link_libraries(kdeconnect_presenter kdeconnectcore Qt::DBus Qt::Quick KF6::I18n ) ``` -------------------------------- ### Link System Volume Plugin Libraries Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/systemvolume/CMakeLists.txt Links the necessary libraries for the system volume plugin, varying by operating system. Includes core KDE Connect libraries, Qt, and platform-specific frameworks or libraries. ```cmake if(WIN32) target_link_libraries(kdeconnect_systemvolume kdeconnectcore Qt::Core ole32 ) elseif(APPLE) target_link_libraries(kdeconnect_systemvolume kdeconnectcore Qt::Core "-framework CoreAudio" "-framework CoreFoundation" ) else() target_link_libraries(kdeconnect_systemvolume kdeconnectcore Qt::Core KF6::PulseAudioQt ) endif() ``` -------------------------------- ### Configure KDE Connect Pause Music Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/pausemusic/CMakeLists.txt Defines the plugin target, selects platform-specific source files, and links necessary libraries. This configuration is essential for building the pause music plugin for KDE Connect. ```cmake kdeconnect_add_plugin(kdeconnect_pausemusic) if(WIN32) target_sources(kdeconnect_pausemusic PRIVATE pausemusicplugin-win.cpp) else() target_sources(kdeconnect_pausemusic PRIVATE pausemusicplugin.cpp) endif() target_link_libraries(kdeconnect_pausemusic kdeconnectcore kdeconnectdbusinterfaces Qt::Core Qt::DBus ) if (WIN32) target_link_libraries(kdeconnect_pausemusic windowsapp) else() target_link_libraries(kdeconnect_pausemusic KF6::PulseAudioQt) endif() install(FILES "kdeconnect_pausemusic_config.qml" DESTINATION ${KDE_INSTALL_DATADIR}/kdeconnect) ``` -------------------------------- ### Link Libraries for Battery Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/battery/CMakeLists.txt Links the necessary libraries for the KDE Battery plugin, including core, DBus, Solid, and I18n. ```cmake target_link_libraries(kdeconnect_battery kdeconnectcore Qt::DBus KF6::Solid KF6::I18n ) ``` -------------------------------- ### Link Libraries for Run Command Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/runcommand/CMakeLists.txt Specifies the libraries required by the run command plugin. Includes core KDE Connect functionality and Qt DBus for inter-process communication. ```cmake target_link_libraries(kdeconnect_runcommand kdeconnectcore Qt::DBus KF6::I18n) ``` -------------------------------- ### Link Libraries for Clipboard Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/clipboard/CMakeLists.txt Links the necessary libraries to the clipboard plugin target, including core KDE Connect libraries, Qt DBus, and KF6 GuiAddons. ```cmake target_link_libraries(kdeconnect_clipboard kdeconnectcore Qt::DBus KF6::GuiAddons ${kdeconnect_clipboard_WL_LINK_LIBS} ) ``` -------------------------------- ### Link Libraries for Virtual Monitor Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/virtualmonitor/CMakeLists.txt Links the necessary libraries for the virtual monitor plugin. This includes core KDE Connect libraries, Qt modules, and KF6 internationalization. ```cmake target_link_libraries(kdeconnect_virtualmonitor kdeconnectcore Qt::Core Qt::Multimedia Qt::DBus KF6::I18n ) ``` -------------------------------- ### Add Telephony Plugin and Link Libraries Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/telephony/CMakeLists.txt Defines the Telephony plugin and links it against core KDE Connect libraries, internationalization, notifications, and Qt DBus. ```cmake kdeconnect_add_plugin(kdeconnect_telephony SOURCES telephonyplugin.cpp) target_link_libraries(kdeconnect_telephony kdeconnectcore KF6::I18n KF6::Notifications Qt::DBus ) ``` -------------------------------- ### Configure Remote System Volume Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/remotesystemvolume/CMakeLists.txt Defines the CMake target for the remote system volume plugin, lists its source files, and specifies dependencies like kdeconnectcore and Qt::DBus. ```cmake kdeconnect_add_plugin(kdeconnect_remotesystemvolume SOURCES remotesystemvolumeplugin.cpp) target_link_libraries(kdeconnect_remotesystemvolume kdeconnectcore Qt::DBus KF6::I18n ) ``` -------------------------------- ### Link Libraries for Connectivity Report Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/connectivity-report/CMakeLists.txt Links the necessary libraries for the connectivity report plugin. This includes core KDE Connect libraries and Qt DBus, along with KF6 libraries for Solid and I18n. ```cmake target_link_libraries(kdeconnect_connectivity_report kdeconnectcore Qt::DBus KF6::Solid KF6::I18n ) ``` -------------------------------- ### Add KDE Connect Share Plugin Source Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/share/CMakeLists.txt Defines the share plugin and its source files using the kdeconnect_add_plugin macro. ```cmake kdeconnect_add_plugin(kdeconnect_share SOURCES shareplugin.cpp) ``` -------------------------------- ### Link Libraries for Lock Device Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/lockdevice/CMakeLists.txt Links the necessary libraries for the lock device plugin. This includes core KDE Connect libraries, DBus interfaces, Qt DBus module, and KF6 Internationalization. ```cmake target_link_libraries(kdeconnect_lockdevice kdeconnectcore kdeconnectdbusinterfaces Qt::DBus KF6::I18n ) ``` -------------------------------- ### Add KDE Connect Contacts Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/contacts/CMakeLists.txt Defines the contacts plugin for KDE Connect and lists its source files. ```cmake kdeconnect_add_plugin(kdeconnect_contacts SOURCES contactsplugin.cpp) ``` -------------------------------- ### Select Lock Device Plugin Source Files Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/lockdevice/CMakeLists.txt Conditionally selects the source file for the lock device plugin based on the target operating system. Use 'lockdeviceplugin-win.cpp' for Windows and 'lockdeviceplugin.cpp' for other systems. ```cmake if (WIN32) target_sources(kdeconnect_lockdevice PRIVATE lockdeviceplugin-win.cpp) else () target_sources(kdeconnect_lockdevice PRIVATE lockdeviceplugin.cpp) endif() ``` -------------------------------- ### Link Libraries for Remote Keyboard Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/remotekeyboard/CMakeLists.txt Links the necessary libraries for the Remote Keyboard plugin. This includes the core KDE Connect library and Qt's DBus module, which are essential for its functionality. ```cmake target_link_libraries(kdeconnect_remotekeyboard kdeconnectcore Qt::DBus ) ``` -------------------------------- ### Define System Volume Plugin Sources Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/systemvolume/CMakeLists.txt Sets the source files for the system volume plugin based on the operating system (Windows, macOS, or Linux). ```cmake if(WIN32) set(kdeconnect_systemvolume_SRCS systemvolumeplugin-win.cpp ) elseif(APPLE) set(kdeconnect_systemvolume_SRCS systemvolumeplugin-macos.cpp ) else() set(kdeconnect_systemvolume_SRCS systemvolumeplugin-pulse.cpp ) endif() kdeconnect_add_plugin(kdeconnect_systemvolume SOURCES ${kdeconnect_systemvolume_SRCS}) ``` -------------------------------- ### Define KDE Connect Libraries Source: https://github.com/kde/kdeconnect-kde/blob/master/tests/CMakeLists.txt Lists the libraries required for KDE Connect components. These are used for linking against various modules. ```cmake set(kdeconnect_libraries kdeconnectcore kdeconnectdbusinterfaces kdeconnectmodels kdeconnectsmshelper kdeconnectversion KF6::GuiAddons KF6::I18n KF6::KIOWidgets KF6::Notifications Qt::DBus Qt::Network KF6::People Qt::Qml Qt::Test ) ``` -------------------------------- ### List Model Source Files Source: https://github.com/kde/kdeconnect-kde/blob/master/models/CMakeLists.txt Defines the list of source files for the models library. ```cmake set(models_SRC devicesmodel.cpp notificationsmodel.cpp devicessortproxymodel.cpp conversationmessage.cpp remotecommandsmodel.cpp remotesinksmodel.cpp devicespluginfilterproxymodel.cpp pluginmodel.cpp commandsmodel.cpp ) ``` -------------------------------- ### Add KDE Connect Share Input Devices Remote Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/shareinputdevicesremote/CMakeLists.txt Configures the build system to add the share input devices remote plugin for KDE Connect, specifying its source files. ```cmake kdeconnect_add_plugin(kdeconnect_shareinputdevicesremote SOURCES shareinputdevicesremoteplugin.cpp) ``` -------------------------------- ### Define Build Target for KDE Connect CLI Source: https://github.com/kde/kdeconnect-kde/blob/master/cli/CMakeLists.txt Defines the main executable for the KDE Connect CLI and marks it as a non-GUI application. It also specifies the source file and links necessary libraries. ```cmake add_definitions(-DTRANSLATION_DOMAIN="kdeconnect-cli") add_executable(kdeconnect-cli kdeconnect-cli.cpp) ecm_mark_nongui_executable(kdeconnect-cli) target_link_libraries(kdeconnect-cli kdeconnectdbusinterfaces kdeconnectmodels kdeconnectcore kdeconnectversion KF6::CoreAddons KF6::I18n KF6::Crash ) ``` -------------------------------- ### Link Libraries for Remote Commands Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/remotecommands/CMakeLists.txt Links the necessary libraries for the remote commands plugin, including kdeconnectcore and Qt::DBus. ```cmake target_link_libraries(kdeconnect_remotecommands kdeconnectcore Qt::DBus ) ``` -------------------------------- ### Link Libraries for Share Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/share/CMakeLists.txt Links the share plugin target with core KDE Connect libraries and Qt/KF6 modules. ```cmake target_link_libraries(kdeconnect_share kdeconnectcore Qt::DBus KF6::Notifications KF6::I18n KF6::GuiAddons KF6::KIOWidgets KF6::Service ) ``` -------------------------------- ### Define Application Icons in CMake Source: https://github.com/kde/kdeconnect-kde/blob/master/icons/CMakeLists.txt Defines a list of application icons for KDE Connect. This list is later appended with additional icons. ```cmake set(APP_ICONS ${CMAKE_CURRENT_SOURCE_DIR}/app/sc-apps-kdeconnect.svg ${CMAKE_CURRENT_SOURCE_DIR}/app/sc-apps-kdeconnectindicator.svg) list(APPEND APP_ICONS ${CMAKE_CURRENT_SOURCE_DIR}/app/sc-apps-kdeconnectindicatordark.svg) ``` -------------------------------- ### Define KDE Connect Clipboard Plugin Target Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/clipboard/CMakeLists.txt Defines the CMake target for the clipboard plugin, specifying its source files. ```cmake kdeconnect_add_plugin(kdeconnect_clipboard SOURCES clipboardplugin.cpp clipboardlistener.cpp) ``` -------------------------------- ### Configure Remote Control Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/remotecontrol/CMakeLists.txt Defines the remote control plugin, its source files, and links necessary libraries like core, DBus, and I18n. ```cmake kdeconnect_add_plugin(kdeconnect_remotecontrol SOURCES remotecontrolplugin.cpp) target_link_libraries(kdeconnect_remotecontrol kdeconnectcore Qt::DBus KF6::I18n ) ``` -------------------------------- ### Link Libraries for Share Input Devices Remote Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/shareinputdevicesremote/CMakeLists.txt Specifies the libraries that the kdeconnect_shareinputdevicesremote target depends on, including core KDE Connect, Qt GUI, and KF6 I18n. ```cmake target_link_libraries(kdeconnect_shareinputdevicesremote kdeconnectcore Qt::Gui KF6::I18n ) ``` -------------------------------- ### Link Libraries for Find My Phone Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/findmyphone/CMakeLists.txt Links the necessary libraries for the Find My Phone plugin. This includes KDE Connect core libraries and Qt modules for core functionality and DBus communication. ```cmake target_link_libraries(kdeconnect_findmyphone kdeconnectcore Qt::Core Qt::DBus) ``` -------------------------------- ### Add KDE Connect Lock Device Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/lockdevice/CMakeLists.txt Adds the lock device plugin to the KDE Connect build system. This is a standard way to register a new plugin. ```cmake kdeconnect_add_plugin(kdeconnect_lockdevice) ``` -------------------------------- ### Add Test Executable Source: https://github.com/kde/kdeconnect-kde/blob/master/tests/CMakeLists.txt Adds a C++ test executable to the build. Ensure the source file exists and all necessary libraries are linked. ```cmake ecm_add_test(notificationstest.cpp LINK_LIBRARIES ${kdeconnect_libraries}) ``` ```cmake ecm_add_test(pluginloadtest.cpp LINK_LIBRARIES ${kdeconnect_libraries}) ``` ```cmake ecm_add_test(sendfiletest.cpp LINK_LIBRARIES ${kdeconnect_libraries}) ``` ```cmake ecm_add_test(smshelpertest.cpp LINK_LIBRARIES ${kdeconnect_libraries}) ``` -------------------------------- ### Link Libraries for SMS Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/sms/CMakeLists.txt Links the necessary libraries for the kdeconnect_sms target, including KDE Connect core, models, DBus interfaces, Qt DBus, KF6 I18n, KF6 Notifications, KF6 ColorScheme, Qt Widgets, and Qt Core. ```cmake target_link_libraries(kdeconnect_sms kdeconnectcore kdeconnectmodels kdeconnectdbusinterfaces Qt::DBus KF6::I18n KF6::Notifications KF6::ColorScheme Qt::Widgets ) ``` -------------------------------- ### Add Remote Keyboard Plugin Source: https://github.com/kde/kdeconnect-kde/blob/master/plugins/remotekeyboard/CMakeLists.txt Defines the Remote Keyboard plugin and specifies its source files. This is used to build the plugin as part of the KDE Connect project. ```cmake kdeconnect_add_plugin(kdeconnect_remotekeyboard SOURCES remotekeyboardplugin.cpp) ```