This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goplasmabindings.

commit bc32869240f6b6f763cbe53cfdcfb034ec56d885
Author: Mihai Moldovan <[email protected]>
Date:   Thu Aug 10 03:24:13 2023 +0200

    CMakeLists.txt: detect if ECMQmlModule is available and, if not, emulate 
its behavior for older platforms.
---
 CMakeLists.txt   | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 debian/changelog |   2 +
 2 files changed, 122 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a3368dd..b347e22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,14 @@ if (USE_PLASMA5)
        include (KDECompilerSettings NO_POLICY_SCOPE)
        include (FeatureSummary)
        include (ECMInstallIcons)
-       include (ECMQmlModule)
+
+       # ECMQmlModule might not be available on all platforms.
+       set (ECMQmlModule_path "")
+        set (HAVE_ECMQMLMODULE FALSE)
+       include (ECMQmlModule OPTIONAL RESULT_VARIABLE ECMQmlModule_path)
+       if (NOT ECMQmlModule_path STREQUAL "NOTFOUND")
+               set (HAVE_ECMQMLMODULE TRUE)
+       endif (ECMQmlModule_path STREQUAL "NOTFOUND")
 
        find_package (
                KF5 REQUIRED COMPONENTS
@@ -79,22 +86,125 @@ endif (USE_PLASMA5)
 
 # Now make sure all files get to the right place
 if (USE_PLASMA5)
-       ecm_add_qml_module (
-               org.x2go.plasmoid URI org.x2go.plasmoid
-       )
+       if (HAVE_ECMQMLMODULE)
+               ecm_add_qml_module (
+                       X2GoPlasmoidPlugin URI "org.x2go.plasmoid"
+               )
+       else (HAVE_ECMQMLMODULE)
+               add_library (X2GoPlasmoidPlugin)
+               set_target_properties (X2GoPlasmoidPlugin PROPERTIES
+                       AUTOMOC_MOC_OPTIONS -Muri="org.x2go.plasmoid"
+               )
+       endif (HAVE_ECMQMLMODULE)
        target_sources (
-               org.x2go.plasmoid PRIVATE
+               X2GoPlasmoidPlugin PRIVATE
                ${x2goplasmoid_SRCS}
        )
        target_link_libraries (
-               org.x2go.plasmoid
+               X2GoPlasmoidPlugin
                Qt::Core
                Qt::Qml
        )
-       ecm_finalize_qml_module (
-               org.x2go.plasmoid DESTINATION
-               ${KDE_INSTALL_QMLDIR}
-       )
+       if (HAVE_ECMQMLMODULE)
+               ecm_finalize_qml_module (
+                       X2GoPlasmoidPlugin DESTINATION
+                       ${KDE_INSTALL_QMLDIR}
+               )
+       else (HAVE_ECMQMLMODULE)
+               set (qmldir_template_ "# This file was automatically generated 
and should not be modified")
+               string (APPEND qmldir_template_ "\nmodule org.x2go.plasmoid")
+               string (APPEND qmldir_template_ "\nplugin X2GoPlasmoidPlugin")
+               string (APPEND qmldir_template_ "\nclassname 
X2GoPlasmoidPlugin")
+               string (APPEND qmldir_template_ "\n")
+
+               set (
+                       qmldir_path_
+                       "${CMAKE_CURRENT_BINARY_DIR}/X2GoPlasmoidPlugin_qmldir"
+               )
+               file (WRITE "${qmldir_path_}" "${qmldir_template_}")
+
+               string (REPLACE "." "/" plugin_path_ "org.x2go.plasmoid")
+
+               if (NOT BUILD_SHARED_LIBS)
+                       set (qrc_template_ "<!-- This file was automatically 
generated and should not be modified -->")
+                       string (APPEND qrc_template_ "\n<RCC>\n<qresource 
prefix=\"/qt-project.org/imports/${plugin_path_}\">")
+                       string (APPEND qrc_template_ "\n<file 
alias=\"qmldir\">${qmldir_path_}</file>")
+                       string (APPEND qrc_template_ "\n</qresource>\n</RCC>\n")
+                       file (WRITE
+                               
"${CMAKE_CURRENT_BINARY_DIR}/X2GoPlasmoidPlugin.qrc"
+                               "${qrc_template_}"
+                       )
+                       qt_add_resources (
+                               qrc_output_
+                               
"${CMAKE_CURRENT_BINARY_DIR}/X2GoPlasmoidPlugin.qrc"
+                       )
+                       target_sources (X2GoPlasmoidPlugin PRIVATE 
${qrc_output_})
+
+                       set (CPP_RESOURCE_INIT "#include 
<qglobal.h>\n#include<QDebug> \n void initQmlResourceX2GoPlasmoidPlugin () 
{Q_INIT_RESOURCE(X2GoPlasmoidPlugin); qWarning()<<Q_FUNC_INFO;};")
+                       file (WRITE X2GoPlasmoidPlugin_init.cpp 
"${CPP_RESOURCE_INIT}")
+                       target_sources (
+                               X2GoPlasmoidPlugin
+                               PRIVATE X2GoPlasmoidPlugin_init.cpp
+                       )
+                       target_compile_definitions (
+                               X2GoPlasmoidPlugin PRIVATE
+                               
-DQT_PLUGIN_RESOURCE_INIT_FUNCTION=initQmlResourceX2GoPlasmoidPlugin
+                               -DQT_STATICPLUGIN=1
+                       )
+                       install (TARGETS X2GoPlasmoidPlugin DESTINATION
+                               ${KDE_INSTALL_QMLDIR}/${plugin_path_}
+                       )
+               else (NOT BUILD_SHARED_LIBS)
+                       get_target_property (
+                               runtime_output_dir_
+                               X2GoPlasmoidPlugin RUNTIME_OUTPUT_DIRECTORY
+                       )
+                       if (NOT ${runtime_output_dir_})
+                               if ("${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" 
STREQUAL "")
+                                       set (runtime_output_dir_ 
${CMAKE_CURRENT_BINARY_DIR})
+                               else ("${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" 
STREQUAL "")
+                                       set (runtime_output_dir_ 
${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+                               endif ("${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" 
STREQUAL "")
+                       endif (NOT ${runtime_output_dir_})
+
+                       add_custom_command (
+                               TARGET X2GoPlasmoidPlugin
+                               POST_BUILD
+                               WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+                               COMMAND ${CMAKE_COMMAND} -E make_directory
+                                       ${runtime_output_dir_}/${plugin_path_}
+                               BYPRODUCTS 
${runtime_output_dir_}/${plugin_path_}
+                       )
+
+                       install (
+                               FILES ${plugin_path_}
+                               DESTINATION
+                                       ${KDE_INSTALL_QMLDIR}/${plugin_path_}
+                               RENAME "qmldir"
+                       )
+
+                       add_custom_command (
+                               TARGET X2GoPlasmoidPlugin
+                               POST_BUILD
+                               WORKING_DIRECTORY ${runtime_output_dir_}
+                               COMMAND ${CMAKE_COMMAND} -E copy ${plugin_path_}
+                                       ${plugin_path_}/qmldir
+                       )
+
+                       install (
+                               TARGETS X2GoPlasmoidPlugin
+                               DESTINATION 
${KDE_INSTALL_QMLDIR}/${plugin_path_}
+                       )
+
+                       add_custom_command (
+                               TARGET X2GoPlasmoidPlugin
+                               POST_BUILD
+                               WORKING_DIRECTORY ${runtime_output_dir_}
+                               COMMAND ${CMAKE_COMMAND} -E copy
+                                       $<TARGET_FILE:X2GoPlasmoidPlugin> 
${plugin_path_}
+                       )
+               endif (NOT BUILD_SHARED_LIBS)
+       endif (HAVE_ECMQMLMODULE)
 else (USE_PLASMA5)
 kde4_add_plugin(
        org.x2go.plasmoid
diff --git a/debian/changelog b/debian/changelog
index 4477bc6..369c30f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -32,6 +32,8 @@ x2goplasmabindings (3.0.2.3-0x2go1) UNRELEASED; urgency=medium
     - CMakeLists.txt: rework building of org.x2go.plasmoid library in Plasma5
       mode, based upon QML.
     - x2goplasmoidkf5.cpp: fix moc include.
+    - CMakeLists.txt: detect if ECMQmlModule is available and, if not, emulate
+      its behavior for older platforms.
   * x2goplasmabindings.spec:
     + Prepare for Plasma 5 support.
     + Stop duplicating Group tag.

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on 
/srv/git/code.x2go.org/x2goplasmabindings.git
_______________________________________________
x2go-commits mailing list
[email protected]
https://lists.x2go.org/listinfo/x2go-commits

Reply via email to