Make desktop files for Plasma integration from template
* Avoid redundant meta-data * Take target suffix into account
This commit is contained in:
parent
153fc24492
commit
c103174609
|
@ -4,6 +4,7 @@ cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
|
|||
set(META_PROJECT_NAME syncthingtray)
|
||||
set(META_PROJECT_TYPE application)
|
||||
set(META_APP_AUTHOR "Martchus")
|
||||
set(META_APP_AUTHOR_MAIL "martchus@gmx.net")
|
||||
set(META_APP_URL "https://github.com/${META_APP_AUTHOR}/${META_PROJECT_NAME}")
|
||||
set(META_APP_DESCRIPTION "Tray application for Syncthing")
|
||||
set(META_APP_CATEGORIES "Network;FileTransfer")
|
||||
|
|
|
@ -41,7 +41,9 @@ include(WindowsResources)
|
|||
include(LibraryTarget)
|
||||
include(ConfigHeader)
|
||||
|
||||
install(
|
||||
FILES ${META_PROJECT_NAME}.desktop
|
||||
DESTINATION "share/kservices5"
|
||||
COMPONENT desktop)
|
||||
# configure and install desktop file
|
||||
include(TemplateFinder)
|
||||
find_template_file("${META_PROJECT_NAME}.desktop" "${META_PROJECT_NAME}" DESKTOP_TEMPLATE_FILE)
|
||||
set(DESKTOP_TARGET_FILE "${CMAKE_CURRENT_BINARY_DIR}/${META_TARGET_NAME}.desktop")
|
||||
configure_file("${DESKTOP_TEMPLATE_FILE}" "${DESKTOP_TARGET_FILE}")
|
||||
install(FILES "${DESKTOP_TARGET_FILE}" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/kservices5" COMPONENT desktop)
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=Trigger Syncthing scan
|
||||
Name[de]="Syncthing-Rescan" im Servicemenü
|
||||
X-KDE-PluginInfo-Author=@META_APP_AUTHOR@
|
||||
X-KDE-PluginInfo-Email=@META_APP_AUTHOR_MAIL@
|
||||
X-KDE-PluginInfo-License=@META_PROJECT_LICENSE@
|
||||
X-KDE-PluginInfo-Name=@META_ID@
|
||||
X-KDE-PluginInfo-Version=@META_VERSION_MAJOR@.@META_VERSION_MINOR@.@META_VERSION_PATCH@
|
||||
X-KDE-Library=@META_TARGET_NAME@
|
||||
X-KDE-Submenu=Syncthing
|
||||
|
||||
Icon=syncthingtray
|
||||
ServiceTypes=KFileItemAction/Plugin
|
||||
MimeType=application/octet-stream;inode/directory
|
|
@ -1,10 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Name=Trigger Syncthing scan
|
||||
Name[de]="Syncthing-Rescan" im Servicemenü
|
||||
X-KDE-Library=syncthingfileitemaction
|
||||
X-KDE-Submenu=Syncthing
|
||||
|
||||
Icon=syncthingtray
|
||||
ServiceTypes=KFileItemAction/Plugin
|
||||
MimeType=application/octet-stream;inode/directory
|
|
@ -3,27 +3,71 @@ cmake_minimum_required(VERSION 2.8.12)
|
|||
# meta data
|
||||
set(META_PROJECT_NAME syncthingplasmoid)
|
||||
set(META_APP_NAME "Syncthing Plasmoid")
|
||||
set(META_APP_AUTHOR "Martchus")
|
||||
set(META_APP_DESCRIPTION "Plasmoid to interact with Syncthing")
|
||||
set(META_PROJECT_TYPE qtplugin)
|
||||
set(META_PLUGIN_CATEGORY plasma/applets)
|
||||
set(META_ID "martchus.${META_PROJECT_NAME}")
|
||||
set(META_QT5_VERSION 5.8)
|
||||
|
||||
# source files
|
||||
set(PLASMOID_FILES
|
||||
package/contents/ui/CompactRepresentation.qml
|
||||
package/contents/ui/FullRepresentation.qml
|
||||
package/contents/ui/DirectoriesPage.qml
|
||||
package/contents/ui/DevicesPage.qml
|
||||
package/contents/ui/DownloadsPage.qml
|
||||
package/contents/ui/RecentChangesPage.qml
|
||||
package/contents/ui/TopLevelView.qml
|
||||
package/contents/ui/TopLevelItem.qml
|
||||
package/contents/ui/DetailView.qml
|
||||
package/contents/ui/DetailItem.qml
|
||||
package/contents/ui/ToolTipTrigger.qml
|
||||
package/contents/ui/ToolTipView.qml
|
||||
package/contents/ui/TinyButton.qml
|
||||
package/contents/ui/TinyButtonStyle.qml
|
||||
package/contents/ui/ButtonShadow.qml
|
||||
package/contents/ui/IconLabel.qml
|
||||
package/contents/ui/StatisticsView.qml
|
||||
package/contents/ui/main.qml)
|
||||
|
||||
# find ECM (required by KF5Plasma)
|
||||
find_package(ECM REQUIRED NO_MODULE)
|
||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_MODULE_PATH})
|
||||
|
||||
# find KF5Plasma
|
||||
find_package(KF5Plasma REQUIRED)
|
||||
|
||||
# add subdirs
|
||||
# find c++utilities
|
||||
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
|
||||
list(APPEND CMAKE_MODULE_PATH ${CPP_UTILITIES_MODULE_DIRS})
|
||||
|
||||
# prepare plasmoid package/configuration
|
||||
set(PLASMOID_PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/package")
|
||||
file(MAKE_DIRECTORY "${PLASMOID_PACKAGE_DIR}")
|
||||
set(PLASMOID_CONFIG_TARGET_FILE "${PLASMOID_PACKAGE_DIR}/metadata.desktop")
|
||||
|
||||
# make plugin library
|
||||
add_subdirectory(lib)
|
||||
|
||||
plasma_install_package(package ${META_ID})
|
||||
# make plasmoid configuration
|
||||
include(TemplateFinder)
|
||||
find_template_file("metadata.desktop" "${META_PROJECT_NAME}" PLASMOID_CONFIG_TEMPLATE_FILE)
|
||||
get_filename_component(PLASMOID_CONFIG_TARGET_FILE_ABSOLUTE_PATH "${PLASMOID_CONFIG_TARGET_FILE}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
|
||||
configure_file("${PLASMOID_CONFIG_TEMPLATE_FILE}" "${PLASMOID_CONFIG_TARGET_FILE}")
|
||||
|
||||
# make plasmoid package folder
|
||||
foreach (PLASMOID_FILE ${PLASMOID_FILES})
|
||||
get_filename_component(PLASMOID_FILE_DIR "${PLASMOID_FILE}" DIRECTORY)
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${PLASMOID_FILE_DIR}")
|
||||
file(COPY "${PLASMOID_FILE}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${PLASMOID_FILE_DIR}")
|
||||
endforeach ()
|
||||
|
||||
# install plasmoid files
|
||||
plasma_install_package("${PLASMOID_PACKAGE_DIR}" "${META_ID}")
|
||||
|
||||
# add target to ease testing the plasmoid (see testing.md)
|
||||
set(PLASMOID_TESTDIR "${CMAKE_CURRENT_BINARY_DIR}/testdir" CACHE STRING "specifies the Plasmoid test directory")
|
||||
file(MAKE_DIRECTORY "${PLASMOID_TESTDIR}")
|
||||
add_custom_target(init_plasmoid_testing
|
||||
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/scripts/inittesting.sh"
|
||||
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/scripts/inittesting.sh" "${PLASMOID_CONFIG_TARGET_FILE_ABSOLUTE_PATH}"
|
||||
WORKING_DIRECTORY "${PLASMOID_TESTDIR}"
|
||||
)
|
||||
|
|
|
@ -5,12 +5,12 @@ Icon=syncthingtray
|
|||
Type=Service
|
||||
Keywords=syncthing;sync;
|
||||
X-KDE-ParentApp=
|
||||
X-KDE-PluginInfo-Author=Martchus
|
||||
X-KDE-PluginInfo-Email=martchus@gmx.net
|
||||
X-KDE-PluginInfo-License=GPLv2
|
||||
X-KDE-PluginInfo-Name=martchus.syncthingplasmoid
|
||||
X-KDE-PluginInfo-Version=0.1
|
||||
X-KDE-PluginInfo-Website=https://github.com/martchus/syncthingtray
|
||||
X-KDE-PluginInfo-Author=@META_APP_AUTHOR@
|
||||
X-KDE-PluginInfo-Email=@META_APP_AUTHOR_MAIL@
|
||||
X-KDE-PluginInfo-License=@META_PROJECT_LICENSE@
|
||||
X-KDE-PluginInfo-Name=@META_ID@
|
||||
X-KDE-PluginInfo-Version=@META_VERSION_MAJOR@.@META_VERSION_MINOR@.@META_VERSION_PATCH@
|
||||
X-KDE-PluginInfo-Website=@META_APP_URL@
|
||||
X-KDE-ServiceTypes=Plasma/Applet
|
||||
X-Plasma-NotificationArea=true
|
||||
X-Plasma-API=declarativeappletscript
|
||||
|
@ -18,4 +18,4 @@ X-Plasma-MainScript=ui/main.qml
|
|||
X-Plasma-RemoteLocation=
|
||||
X-KDE-PluginInfo-EnabledByDefault=true
|
||||
X-KDE-PluginInfo-Category=System Information
|
||||
X-KDE-Library=syncthingplasmoid
|
||||
X-KDE-Library=@META_TARGET_NAME@
|
|
@ -2,34 +2,11 @@
|
|||
set(HEADER_FILES syncthingapplet.h settingsdialog.h)
|
||||
set(SRC_FILES syncthingapplet.cpp settingsdialog.cpp)
|
||||
set(WIDGETS_UI_FILES appearanceoptionpage.ui)
|
||||
set(PLASMOID_FILES
|
||||
../package/metadata.desktop
|
||||
../package/contents/ui/CompactRepresentation.qml
|
||||
../package/contents/ui/FullRepresentation.qml
|
||||
../package/contents/ui/DirectoriesPage.qml
|
||||
../package/contents/ui/DevicesPage.qml
|
||||
../package/contents/ui/DownloadsPage.qml
|
||||
../package/contents/ui/RecentChangesPage.qml
|
||||
../package/contents/ui/TopLevelView.qml
|
||||
../package/contents/ui/TopLevelItem.qml
|
||||
../package/contents/ui/DetailView.qml
|
||||
../package/contents/ui/DetailItem.qml
|
||||
../package/contents/ui/ToolTipTrigger.qml
|
||||
../package/contents/ui/ToolTipView.qml
|
||||
../package/contents/ui/TinyButton.qml
|
||||
../package/contents/ui/TinyButtonStyle.qml
|
||||
../package/contents/ui/ButtonShadow.qml
|
||||
../package/contents/ui/IconLabel.qml
|
||||
../package/contents/ui/StatisticsView.qml
|
||||
../package/contents/ui/main.qml)
|
||||
list(APPEND QML_SRC_FILES ${PLASMOID_FILES})
|
||||
|
||||
foreach (PLASMOID_FILE ${PLASMOID_FILES})
|
||||
list(APPEND QML_SRC_FILES "../${PLASMOID_FILE}")
|
||||
endforeach ()
|
||||
set(TS_FILES ../translations/${META_PROJECT_NAME}_de_DE.ts ../translations/${META_PROJECT_NAME}_en_US.ts)
|
||||
|
||||
# find c++utilities
|
||||
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
|
||||
list(APPEND CMAKE_MODULE_PATH ${CPP_UTILITIES_MODULE_DIRS})
|
||||
|
||||
# find qtutilities
|
||||
find_package(qtutilities${CONFIGURATION_PACKAGE_SUFFIX} 6.0.0 REQUIRED)
|
||||
use_qt_utilities()
|
||||
|
@ -62,5 +39,10 @@ include(WindowsResources)
|
|||
include(LibraryTarget)
|
||||
include(ConfigHeader)
|
||||
|
||||
# export some variable for further use in the overall plasmoid build script
|
||||
set(META_TARGET_NAME "${META_TARGET_NAME}" PARENT_SCOPE)
|
||||
set(META_ID "martchus.${META_TARGET_NAME}" PARENT_SCOPE)
|
||||
set(META_PROJECT_LICENSE "${META_PROJECT_LICENSE}" PARENT_SCOPE)
|
||||
|
||||
# what ever this does, it is done
|
||||
kcoreaddons_desktop_to_json("${META_PROJECT_NAME}" ../package/metadata.desktop)
|
||||
kcoreaddons_desktop_to_json("${META_TARGET_NAME}" "${PLASMOID_CONFIG_TARGET_FILE}" DESKTOP_TO_JSON_OUTPUT_DIR "${PLASMOID_PACKAGE_DIR}")
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# the generated desktop file is required by inittesting.sh
|
||||
metadata.desktop
|
|
@ -1,4 +1,17 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# use the package dir within the source-tree so one does not need to run CMake again for updating
|
||||
# build-tree copy all the time
|
||||
package_dir=$(dirname $0)/../package
|
||||
|
||||
# copy the generated desktop file back into the source-tree package dir so it can actually be used
|
||||
meta_data_file=$1
|
||||
cp --target-directory="$package_dir" "$meta_data_file"
|
||||
|
||||
# install or update the package into the working directory
|
||||
export HOME="$PWD"
|
||||
plasmapkg2 --install $(dirname $0)/../package || plasmapkg2 --upgrade $(dirname $0)/../package
|
||||
if ! plasmapkg2 --install "$package_dir"; then
|
||||
plasmapkg2 --upgrade "$package_dir"
|
||||
fi
|
||||
exit $?
|
||||
|
|
|
@ -20,6 +20,9 @@ set(TEST_SRC_FILES tests/manualtesting.cpp)
|
|||
|
||||
set(TS_FILES)
|
||||
|
||||
# don't allow adding a target suffix to the test library
|
||||
set(SYNCTHINGTESTHELPER_CONFIGURATION_TARGET_SUFFIX none)
|
||||
|
||||
# find c++utilities
|
||||
find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED)
|
||||
use_cpp_utilities()
|
||||
|
|
Loading…
Reference in New Issue