[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kirigami] /: Fix the Kirigami QRC static plugin generation
From:       Marco Martin <null () kde ! org>
Date:       2018-08-07 15:51:53
Message-ID: E1fn4H3-0006XX-Aj () code ! kde ! org
[Download RAW message or body]

Git commit 867283d0c1595b52ef806862227aaaca1253d18f by Marco Martin.
Committed on 07/08/2018 at 15:51.
Pushed by mart into branch 'master'.

Fix the Kirigami QRC static plugin generation

Summary:
This patch moves the qrc from "raw" to generated using CMake configure file and add 4 \
missing files.

Since some months, a few files were missing from the QRC. It worked fine on system \
where Kirigami is installed (and recent) because it would load them from the file \
system instead of static resources. However it didn't work so well on systems where \
an older version (or no version) are installed.

Because ActionMenuItem is has different versions depending on the Qt version, the qrc \
had to be dynamic. The use of absolute path was also necessary because `rcc` could no \
longer find the files because it uses the relative path from the `.qrc` absolute \
path.

Test Plan: Not much honestly, it works on my system, other might want to double \
check.

Reviewers: lepagevalleeemmanuel

Subscribers: bearsh, plasma-devel

Tags: #kirigami

Differential Revision: https://phabricator.kde.org/D14673

M  +3    -0    kirigami.qrc
A  +84   -0    kirigami.qrc.in
M  +22   -1    src/CMakeLists.txt

https://commits.kde.org/kirigami/867283d0c1595b52ef806862227aaaca1253d18f

diff --git a/kirigami.qrc b/kirigami.qrc
index 168f580..daac302 100644
--- a/kirigami.qrc
+++ b/kirigami.qrc
@@ -34,6 +34,9 @@
         <file alias="private/PrivateActionToolButton.qml">src/controls/private/PrivateActionToolButton.qml</file>
                
         <file alias="private/TitlesPageHeader.qml">src/controls/private/TitlesPageHeader.qml</file>
                
         <file alias="private/ToolBarPageHeader.qml">src/controls/private/ToolBarPageHeader.qml</file>
 +        <file alias="private/ActionsMenu.qml">src/controls/private/ActionsMenu.qml</file>
 +        <file alias="private/ActionMenuItem.qml">src/controls/private/ActionMenuItemQt59.qml</file>
 +        <file alias="private/ActionMenuItemBase.qml">src/controls/private/ActionMenuItemBase.qml</file>
  <file alias="Separator.qml">src/controls/Separator.qml</file>
         <file alias="OverlayDrawer.qml">src/controls/OverlayDrawer.qml</file>
         <file alias="OverlaySheet.qml">src/controls/OverlaySheet.qml</file>
diff --git a/kirigami.qrc.in b/kirigami.qrc.in
new file mode 100644
index 0000000..138ee1d
--- /dev/null
+++ b/kirigami.qrc.in
@@ -0,0 +1,84 @@
+<RCC>
+    <qresource prefix="/org/kde/kirigami/">
+        <file alias="AbstractApplicationWindow.qml">@kirigami_QML_DIR@/src/controls/AbstractApplicationWindow.qml</file>
 +        <file alias="ContextDrawer.qml">@kirigami_QML_DIR@/src/controls/ContextDrawer.qml</file>
 +        <file alias="Action.qml">@kirigami_QML_DIR@/src/controls/Action.qml</file>
+        <file alias="Page.qml">@kirigami_QML_DIR@/src/controls/Page.qml</file>
+        <file alias="PageRow.qml">@kirigami_QML_DIR@/src/controls/PageRow.qml</file>
+        <file alias="AbstractListItem.qml">@kirigami_QML_DIR@/src/controls/AbstractListItem.qml</file>
 +        <file alias="Theme.qml">@kirigami_QML_DIR@/src/controls/Theme.qml</file>
+        <file alias="AbstractCard.qml">@kirigami_QML_DIR@/src/controls/AbstractCard.qml</file>
 +        <file alias="templates/AbstractCard.qml">@kirigami_QML_DIR@/src/controls/templates/AbstractCard.qml</file>
 +        <file alias="Card.qml">@kirigami_QML_DIR@/src/controls/Card.qml</file>
+        <file alias="CardsLayout.qml">@kirigami_QML_DIR@/src/controls/CardsLayout.qml</file>
 +        <file alias="CardsListView.qml">@kirigami_QML_DIR@/src/controls/CardsListView.qml</file>
 +        <file alias="CardsGridView.qml">@kirigami_QML_DIR@/src/controls/CardsGridView.qml</file>
 +        <file alias="ActionToolBar.qml">@kirigami_QML_DIR@/src/controls/ActionToolBar.qml</file>
 +        <file alias="templates/InlineMessage.qml">@kirigami_QML_DIR@/src/controls/templates/InlineMessage.qml</file>
 +        <file alias="InlineMessage.qml">@kirigami_QML_DIR@/src/controls/InlineMessage.qml</file>
 +        <file alias="ToolBarApplicationHeader.qml">@kirigami_QML_DIR@/src/controls/ToolBarApplicationHeader.qml</file>
 +        <file alias="private/PrivateActionToolButton.qml">@kirigami_QML_DIR@/src/controls/private/PrivateActionToolButton.qml</file>
 +        <file alias="private/RefreshableScrollView.qml">@kirigami_QML_DIR@/src/controls/private/RefreshableScrollView.qml</file>
 +        <file alias="private/SwipeItemEventFilter.qml">@kirigami_QML_DIR@/src/controls/private/SwipeItemEventFilter.qml</file>
 +        <file alias="private/PageActionPropertyGroup.qml">@kirigami_QML_DIR@/src/controls/private/PageActionPropertyGroup.qml</file>
 +        <file alias="private/ActionIconGroup.qml">@kirigami_QML_DIR@/src/controls/private/ActionIconGroup.qml</file>
 +        <file alias="private/CornerShadow.qml">@kirigami_QML_DIR@/src/controls/private/CornerShadow.qml</file>
 +        <file alias="private/ActionButton.qml">@kirigami_QML_DIR@/src/controls/private/ActionButton.qml</file>
 +        <file alias="private/DefaultListItemBackground.qml">@kirigami_QML_DIR@/src/controls/private/DefaultListItemBackground.qml</file>
 +        <file alias="private/BannerImage.qml">@kirigami_QML_DIR@/src/controls/private/BannerImage.qml</file>
 +        <file alias="private/BannerGroup.qml">@kirigami_QML_DIR@/src/controls/private/BannerGroup.qml</file>
 +        <file alias="private/EdgeShadow.qml">@kirigami_QML_DIR@/src/controls/private/EdgeShadow.qml</file>
 +        <file alias="private/AbstractPageHeader.qml">@kirigami_QML_DIR@/src/controls/private/AbstractPageHeader.qml</file>
 +        <file alias="private/PageRowGlobalToolBarStyleGroup.qml">@kirigami_QML_DIR@/src/controls/private/PageRowGlobalToolBarStyleGroup.qml</file>
 +        <file alias="private/PageRowGlobalToolBarUI.qml">@kirigami_QML_DIR@/src/controls/private/PageRowGlobalToolBarUI.qml</file>
 +        <file alias="private/PrivateActionToolButton.qml">@kirigami_QML_DIR@/src/controls/private/PrivateActionToolButton.qml</file>
 +        <file alias="private/TitlesPageHeader.qml">@kirigami_QML_DIR@/src/controls/private/TitlesPageHeader.qml</file>
 +        <file alias="private/ToolBarPageHeader.qml">@kirigami_QML_DIR@/src/controls/private/ToolBarPageHeader.qml</file>
 +        <file alias="private/ActionsMenu.qml">@kirigami_QML_DIR@/src/controls/private/ActionsMenu.qml</file>
 +        <file alias="private/ActionMenuItem.qml">@kirigami_QML_DIR@/src/controls/private/@kirigami_ActionMenuItem@</file>
 +        <file alias="private/ActionMenuItemBase.qml">@kirigami_QML_DIR@/src/controls/private/ActionMenuItemBase.qml</file>
 +        <file alias="Separator.qml">@kirigami_QML_DIR@/src/controls/Separator.qml</file>
 +        <file alias="OverlayDrawer.qml">@kirigami_QML_DIR@/src/controls/OverlayDrawer.qml</file>
 +        <file alias="OverlaySheet.qml">@kirigami_QML_DIR@/src/controls/OverlaySheet.qml</file>
 +        <file alias="GlobalDrawer.qml">@kirigami_QML_DIR@/src/controls/GlobalDrawer.qml</file>
 +        <file alias="templates/AbstractListItem.qml">@kirigami_QML_DIR@/src/controls/templates/AbstractListItem.qml</file>
 +        <file alias="templates/private/MenuIcon.qml">@kirigami_QML_DIR@/src/controls/templates/private/MenuIcon.qml</file>
 +        <file alias="templates/private/GenericDrawerIcon.qml">@kirigami_QML_DIR@/src/controls/templates/private/GenericDrawerIcon.qml</file>
 +        <file alias="templates/private/PassiveNotification.qml">@kirigami_QML_DIR@/src/controls/templates/private/PassiveNotification.qml</file>
 +        <file alias="templates/private/ContextIcon.qml">@kirigami_QML_DIR@/src/controls/templates/private/ContextIcon.qml</file>
 +        <file alias="templates/private/ScrollView.qml">@kirigami_QML_DIR@/src/controls/templates/private/ScrollView.qml</file>
 +        <file alias="templates/private/BackButton.qml">@kirigami_QML_DIR@/src/controls/templates/private/BackButton.qml</file>
 +        <file alias="templates/private/IconPropertiesGroup.qml">@kirigami_QML_DIR@/src/controls/templates/private/IconPropertiesGroup.qml</file>
 +        <file alias="templates/private/ForwardButton.qml">@kirigami_QML_DIR@/src/controls/templates/private/ForwardButton.qml</file>
 +        <file alias="templates/OverlayDrawer.qml">@kirigami_QML_DIR@/src/controls/templates/OverlayDrawer.qml</file>
 +        <file alias="templates/OverlaySheet.qml">@kirigami_QML_DIR@/src/controls/templates/OverlaySheet.qml</file>
 +        <file alias="templates/SwipeListItem.qml">@kirigami_QML_DIR@/src/controls/templates/SwipeListItem.qml</file>
 +        <file alias="templates/ApplicationHeader.qml">@kirigami_QML_DIR@/src/controls/templates/ApplicationHeader.qml</file>
 +        <file alias="templates/AbstractApplicationHeader.qml">@kirigami_QML_DIR@/src/controls/templates/AbstractApplicationHeader.qml</file>
 +        <file alias="Units.qml">@kirigami_QML_DIR@/src/controls/Units.qml</file>
+        <file alias="SwipeListItem.qml">@kirigami_QML_DIR@/src/controls/SwipeListItem.qml</file>
 +        <file alias="ApplicationWindow.qml">@kirigami_QML_DIR@/src/controls/ApplicationWindow.qml</file>
 +	<file alias="AbstractApplicationItem.qml">@kirigami_QML_DIR@/src/controls/AbstractApplicationItem.qml</file>
 +	<file alias="ApplicationItem.qml">@kirigami_QML_DIR@/src/controls/ApplicationItem.qml</file>
 +        <file alias="ApplicationHeader.qml">@kirigami_QML_DIR@/src/controls/ApplicationHeader.qml</file>
 +        <file alias="Heading.qml">@kirigami_QML_DIR@/src/controls/Heading.qml</file>
 +        <file alias="ScrollablePage.qml">@kirigami_QML_DIR@/src/controls/ScrollablePage.qml</file>
 +        <file alias="Label.qml">@kirigami_QML_DIR@/src/controls/Label.qml</file>
+        <file alias="BasicListItem.qml">@kirigami_QML_DIR@/src/controls/BasicListItem.qml</file>
 +        <file alias="AbstractApplicationHeader.qml">@kirigami_QML_DIR@/src/controls/AbstractApplicationHeader.qml</file>
 +        <file alias="FormLayout.qml">@kirigami_QML_DIR@/src/controls/FormLayout.qml</file>
 +        <file alias="ListItemDragHandle.qml">@kirigami_QML_DIR@/src/controls/ListItemDragHandle.qml</file>
 +        <file alias="styles/Material/AbstractListItem.qml">@kirigami_QML_DIR@/src/styles/Material/AbstractListItem.qml</file>
 +        <file alias="styles/Material/Theme.qml">@kirigami_QML_DIR@/src/styles/Material/Theme.qml</file>
 +        <file alias="styles/Material/SwipeListItem.qml">@kirigami_QML_DIR@/src/styles/Material/SwipeListItem.qml</file>
 +        <file alias="styles/Material/Label.qml">@kirigami_QML_DIR@/src/styles/Material/Label.qml</file>
 +        <file alias="styles/org.kde.desktop/AbstractListItem.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/AbstractListItem.qml</file>
 +        <file alias="styles/org.kde.desktop/Theme.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/Theme.qml</file>
 +        <file alias="styles/org.kde.desktop/OverlayDrawer.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/OverlayDrawer.qml</file>
 +        <file alias="styles/org.kde.desktop/Units.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/Units.qml</file>
 +        <file alias="styles/org.kde.desktop/SwipeListItem.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/SwipeListItem.qml</file>
 +        <file alias="styles/org.kde.desktop/ApplicationWindow.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/ApplicationWindow.qml</file>
 +        <file alias="styles/org.kde.desktop/AbstractApplicationHeader.qml">@kirigami_QML_DIR@/src/styles/org.kde.desktop/AbstractApplicationHeader.qml</file>
 +        <file alias="templates/FormLayout.qml">@kirigami_QML_DIR@/src/controls/templates/FormLayout.qml</file>
 +    </qresource>
+</RCC>
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 30b9b4f..3e1c35a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,9 +28,30 @@ set(kirigami_SRCS
 add_subdirectory(libkirigami)
 
 if(STATIC_LIBRARY)
+    # Set some variables to insert the right files in the QRC
+    if(Qt5Qml_VERSION VERSION_LESS 5.10)
+        set(kirigami_ActionMenuItem ActionMenuItemQt59.qml)
+    else()
+        set(kirigami_ActionMenuItem ActionMenuItemQt510.qml)
+    endif()
+
+    # `rcc` is a bit dumb and isn't designed to use auto generated files, to
+    # avoid poluting the source directory, use absolute paths
+    set(kirigami_QML_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../)
+
+    # First, pre-process the QRC to add the files associated with the right Qt
+    # version.
+    configure_file(
+        ${CMAKE_CURRENT_SOURCE_DIR}/../kirigami.qrc.in
+        ${CMAKE_CURRENT_BINARY_DIR}/../kirigami.qrc
+        @ONLY
+    )
+
     # When using the static library, all QML files need to be shipped within the
     # .a file.
-    qt5_add_resources(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../kirigami.qrc)
+    qt5_add_resources(
+        RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/../kirigami.qrc
+    )
 endif(STATIC_LIBRARY)
 
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic