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), ae4f9fe0c (dev), 19fac1976 (dev), 84841f3bb (6.9), 38d26e8d2 (dev), 2889a6136 (6.9), 667891d39 (6.9), 327185720 (6.8), 23d1c956c (6.8), 69f652ea5 (6.8), a46b19e16 (dev), 77b4452f8 (6.9)

    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:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: