Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-109553

CMake deployment API creates too deep directory hierarchy when DESTDIR is set

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.5.0 Beta2
    • 6.5.0 FF
    • Build System: CMake
    • None
    • All
    • 1f142d903 (dev), 6d75c0dea (6.5), b6fd3191c (dev), 65b326303 (6.5)

    Description

      Consider the qtquickcontrols gallery example with the following modified project file.

      cmake_minimum_required(VERSION 3.16)
      project(gallery_controls2 LANGUAGES CXX)
      
      find_package(Qt6 REQUIRED COMPONENTS Core Gui Quick QuickControls2)
      qt_standard_project_setup()
      
      qt_add_executable(gallery_controls2
          gallery.cpp
      )
      
      set_target_properties(gallery_controls2 PROPERTIES
          WIN32_EXECUTABLE TRUE
          MACOSX_BUNDLE TRUE
      )
      
      target_link_libraries(gallery_controls2 PUBLIC
          Qt::Core
          Qt::Gui
          Qt::Quick
          Qt::QuickControls2
      )
      
      # Resources:
      set(qmake_immediate_resource_files
          "+Material/ToolBar.qml"
          "ToolBar.qml"
          "gallery.qml"
          "icons/gallery/20x20/back.png"
          "icons/gallery/20x20/drawer.png"
          "icons/gallery/20x20/menu.png"
          "icons/gallery/20x20@2/back.png"
          "icons/gallery/20x20@2/drawer.png"
          "icons/gallery/20x20@2/menu.png"
          "icons/gallery/20x20@3/back.png"
          "icons/gallery/20x20@3/drawer.png"
          "icons/gallery/20x20@3/menu.png"
          "icons/gallery/20x20@4/back.png"
          "icons/gallery/20x20@4/drawer.png"
          "icons/gallery/20x20@4/menu.png"
          "icons/gallery/index.theme"
          "images/arrow.png"
          "images/arrow@2x.png"
          "images/arrow@3x.png"
          "images/arrow@4x.png"
          "images/arrows.png"
          "images/arrows@2x.png"
          "images/arrows@3x.png"
          "images/arrows@4x.png"
          "images/qt-logo.png"
          "images/qt-logo@2x.png"
          "images/qt-logo@3x.png"
          "images/qt-logo@4x.png"
          "pages/BusyIndicatorPage.qml"
          "pages/ButtonPage.qml"
          "pages/CheckBoxPage.qml"
          "pages/ComboBoxPage.qml"
          "pages/DelayButtonPage.qml"
          "pages/DelegatePage.qml"
          "pages/DialPage.qml"
          "pages/DialogPage.qml"
          "pages/FramePage.qml"
          "pages/GroupBoxPage.qml"
          "pages/PageIndicatorPage.qml"
          "pages/ProgressBarPage.qml"
          "pages/RadioButtonPage.qml"
          "pages/RangeSliderPage.qml"
          "pages/ScrollBarPage.qml"
          "pages/ScrollIndicatorPage.qml"
          "pages/ScrollablePage.qml"
          "pages/SliderPage.qml"
          "pages/SpinBoxPage.qml"
          "pages/StackViewPage.qml"
          "pages/SwipeViewPage.qml"
          "pages/SwitchPage.qml"
          "pages/TabBarPage.qml"
          "pages/TextAreaPage.qml"
          "pages/TextFieldPage.qml"
          "pages/ToolTipPage.qml"
          "pages/TumblerPage.qml"
          "qmldir"
          "qtquickcontrols2.conf"
      )
      
      qt6_add_resources(gallery_controls2 "qmake_immediate"
          PREFIX
              "/"
          FILES
              ${qmake_immediate_resource_files}
      )
      
      install(TARGETS gallery_controls2
          RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
          BUNDLE DESTINATION "."
          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
      )
      
      qt_generate_deploy_qml_app_script(
          TARGET gallery_controls2
          FILENAME_VARIABLE deploy_script
      )
      
      install(SCRIPT ${deploy_script})
      

      Build the project with default install prefix, and install it with DESTDIR set to /tmp/bla.

      [0/1] Install the project...
      -- Install configuration: "Release"
      -- Installing: /tmp/bla/usr/local/bin/gallery_controls2
      -- Set runtime path of "/tmp/bla/usr/local/bin/gallery_controls2" to "$ORIGIN:$ORIGIN/../lib"
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/libqtquick2plugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/libqmlmetaplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/Base/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/Base/libqmlplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/Models/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/Models/libmodelsplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/WorkerScript/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQml/WorkerScript/libworkerscriptplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/libqtquickcontrols2plugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/impl/libqtquickcontrols2implplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Fusion/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Fusion/libqtquickcontrols2fusionstyleplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Material/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Material/libqtquickcontrols2materialstyleplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Imagine/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Imagine/libqtquickcontrols2imaginestyleplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Universal/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Universal/libqtquickcontrols2universalstyleplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Basic/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Basic/libqtquickcontrols2basicstyleplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Templates/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Templates/libqtquicktemplates2plugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Fusion/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Fusion/impl/libqtquickcontrols2fusionstyleimplplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Window/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Window/libquickwindowplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Material/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Material/impl/libqtquickcontrols2materialstyleimplplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Imagine/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Imagine/impl/libqtquickcontrols2imaginestyleimplplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Universal/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Universal/impl/libqtquickcontrols2universalstyleimplplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Basic/impl/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Controls/Basic/impl/libqtquickcontrols2basicstyleimplplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Shapes/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Shapes/libqmlshapesplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Layouts/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/QtQuick/Layouts/libqquicklayoutsplugin.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/Qt/labs/settings/qmldir
      -- Installing: /tmp/bla/tmp/bla/usr/local/qml/Qt/labs/settings/libqmlsettingsplugin.so
      -- Writing /tmp/bla/usr/local/bin/qt.conf
      -- Running generic Qt deploy tool on /home/jobor/playground/gallery/build/gallery_controls2
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Core.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Core.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6DBus.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6DBus.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6EglFSDeviceIntegration.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6EglFSDeviceIntegration.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6EglFsKmsSupport.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6EglFsKmsSupport.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Gui.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Gui.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6LabsSettings.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6LabsSettings.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Network.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Network.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6OpenGL.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6OpenGL.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Qml.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Qml.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QmlModels.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QmlModels.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QmlWorkerScript.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QmlWorkerScript.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Quick.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6Quick.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickControls2.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickControls2.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickControls2Impl.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickControls2Impl.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickLayouts.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickLayouts.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickShapes.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickShapes.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickTemplates2.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6QuickTemplates2.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6XcbQpa.so.6
      -- Installing: /tmp/bla/tmp/bla/usr/local/lib/libQt6XcbQpa.so.6.6.0
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/egldeviceintegrations/libqeglfs-emu-integration.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/egldeviceintegrations/libqeglfs-x11-integration.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/imageformats/libqgif.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/imageformats/libqico.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/imageformats/libqjpeg.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/xcbglintegrations/libqxcb-egl-integration.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/xcbglintegrations/libqxcb-glx-integration.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/platforms/libqxcb.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_messages.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_local.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_server.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_debugger.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_inspector.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_native.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_nativedebugger.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_preview.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_profiler.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_quickprofiler.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/qmltooling/libqmldbg_tcp.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/networkinformation/libqglib.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/networkinformation/libqnetworkmanager.so
      -- Installing: /tmp/bla/tmp/bla/usr/local/plugins/tls/libqopensslbackend.so
      -- lconvert was not found. Skipping deployment of translations.
      

      Installation of the following artifacts takes DESTDIR into account twice:

      • Qt libraries
      • Qt plugins
      • QML files and backend plugin

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            jbornema Joerg Bornemann
            jbornema Joerg Bornemann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes