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

qt_deploy_runtime_dependencies in qt_generate_deploy_script may add many `../` to RPATH

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.6.3
    • Build System: CMake
    • None
    • openSUSE Leap 15.5 x86_64
      Qt with oss licensed & installed via online installer
    • Linux/X11

    Description

      As the title says, when `cmake --install`, `qt_deploy_runtime_dependencies` will add many `../` to the `RPATH`

      If you setup a project with `cmake` like the following:

      qt_generate_deploy_script(
          TARGET MyApp
          OUTPUT_SCRIPT MyAppDeploy
          CONTENT [[
              qt_deploy_qml_imports(
                  # Deploy QML modules used by MyApp
                  TARGET MyApp
      
                  # The found QML plugins are stored in the plugins_found variable
                  PLUGINS_FOUND plugins_found
      
                  # The QML modules will be deployed into a custom directory
                  # QML_DIR "myqmldir"
      
                  # Qt QML modules will be skipped, only project-created QML modules will be deployed
                  NO_QT_IMPORTS
              )
              # Deploy application runtime dependencies and runtime dependencies
              # of the found QML module plugins.
              qt_deploy_runtime_dependencies(
                  EXECUTABLE $<TARGET_FILE:MyApp>
                  BIN_DIR ${CMAKE_INSTALL_BINDIR}
                  LIB_DIR ${CMAKE_INSTALL_LIBDIR}
                  ADDITIONAL_MODULES ${plugins_found}
              )
       ]])
      

      You maybe get an error as following:

      CMake Error at /opt/Qt/6.6.3/gcc_64/lib/cmake/Qt6Core/Qt6CoreDeploySupport.cmake:139 (file):
        file RPATH_SET could not write new RPATH:
                 $ORIGIN/../../../../lib64
        to the file:
                  /home/neo/demoapp/qml/My/Namespace/Nested/libMyLongNameLib.so
        The replacement path is too long for the RUNPATH entry. 

      But by just using qt_generate_deploy_app_script(), the RPATH will keep to be $ORIGIN/.../lib64 for my case.
       

      Attachments

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

        Activity

          People

            qtbuildsystem Qt Build System Team
            sauntor sauntor
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes