73 lines
2.9 KiB
CMake
73 lines
2.9 KiB
CMake
# metadata
|
|
set(META_PROJECT_NAME syncthingfileitemaction)
|
|
set(META_APP_NAME "Syncthing KIO-Plugin")
|
|
set(META_APP_DESCRIPTION "KIO file item action for Syncthing")
|
|
set(META_PROJECT_TYPE qtplugin)
|
|
set(META_QT5_VERSION 5.8)
|
|
|
|
# add project files
|
|
set(HEADER_FILES syncthingmenuaction.h syncthinginfoaction.h syncthingdiractions.h syncthingfileitemactionstaticdata.h
|
|
syncthingfileitemaction.h)
|
|
set(SRC_FILES syncthingmenuaction.cpp syncthinginfoaction.cpp syncthingdiractions.cpp syncthingfileitemactionstaticdata.cpp
|
|
syncthingfileitemaction.cpp)
|
|
|
|
set(TS_FILES translations/${META_PROJECT_NAME}_zh_CN.ts translations/${META_PROJECT_NAME}_cs_CZ.ts
|
|
translations/${META_PROJECT_NAME}_de_DE.ts translations/${META_PROJECT_NAME}_en_US.ts)
|
|
|
|
# find c++utilities
|
|
find_package(${PACKAGE_NAMESPACE_PREFIX}c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.20.0 REQUIRED)
|
|
list(APPEND CMAKE_MODULE_PATH ${CPP_UTILITIES_MODULE_DIRS})
|
|
|
|
# find qtutilities
|
|
find_package(${PACKAGE_NAMESPACE_PREFIX}qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.7.0 REQUIRED)
|
|
use_qt_utilities()
|
|
|
|
# find backend libraries
|
|
find_package(syncthingconnector ${META_APP_VERSION} REQUIRED)
|
|
use_syncthingconnector()
|
|
find_package(syncthingmodel ${META_APP_VERSION} REQUIRED)
|
|
use_syncthingmodel()
|
|
|
|
# link also explicitly against the following Qt and KF modules
|
|
list(APPEND ADDITIONAL_QT_MODULES Network)
|
|
list(APPEND ADDITIONAL_KF_MODULES KIO)
|
|
set(KF_PACKAGE_PREFIX
|
|
"KF5"
|
|
CACHE STRING "specifies the prefix for KDE Frameworks packages")
|
|
set(KIO_MODULE_TARGETS "${KF_PACKAGE_PREFIX}::KIOCore" "${KF_PACKAGE_PREFIX}::KIOFileWidgets"
|
|
"${KF_PACKAGE_PREFIX}::KIOWidgets")
|
|
if (KF_MAJOR_VERSION GREATER_EQUAL 6)
|
|
list(APPEND KIO_MODULE_TARGETS)
|
|
set(META_PLUGIN_CATEGORY kf${KF_MAJOR_VERSION}/kfileitemaction)
|
|
else ()
|
|
list(APPEND KIO_MODULE_TARGETS "${KF_PACKAGE_PREFIX}::KIONTLM")
|
|
endif ()
|
|
|
|
# include modules to apply configuration
|
|
include(BasicConfig)
|
|
include(QtGuiConfig)
|
|
include(QtConfig)
|
|
include(WindowsResources)
|
|
include(LibraryTarget)
|
|
include(ConfigHeader)
|
|
include(AppUtilities)
|
|
|
|
# configure and install desktop file
|
|
include(TemplateFinder)
|
|
if (KF_MAJOR_VERSION LESS 6)
|
|
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}/kservices${KF_MAJOR_VERSION}"
|
|
COMPONENT desktop)
|
|
else ()
|
|
find_template_file("${META_PROJECT_NAME}.json" "${META_PROJECT_NAME}" JSON_TEMPLATE_FILE)
|
|
set(JSON_TARGET_FILE "${CMAKE_CURRENT_BINARY_DIR}/metadata.json")
|
|
configure_file("${JSON_TEMPLATE_FILE}" "${JSON_TARGET_FILE}")
|
|
endif ()
|
|
|
|
# install appstream file
|
|
add_appstream_file()
|