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

qt_generate_deploy_app_script doesn't support all windeployqt arguments

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.7.0
    • 6.5
    • Build System: CMake
    • None
    • Windows
    • a0c9fc675 (dev), 5722c6749 (dev), 1495051e0 (6.7)

    Description

      At https://doc.qt.io/qt-6/qt-generate-deploy-app-script.html we can see that qt_generate_deploy_app_script only mentions:

      For Windows desktop applications, the required runtime files for the compiler are also installed by default. To prevent this, specify NO_COMPILER_RUNTIME.

      But if we look at windeployqt.exe --help we can see more parameters available:

      $ windeployqt --help
      QCommandLineParser: already having an option named "no-virtualkeyboard"
      Usage: windeployqt [options] [files]
      Qt Deploy Tool 6.5.0
      
      The simplest way to use windeployqt is to add the bin directory of your Qt
      installation (e.g. <QT_DIR\bin>) to the PATH variable and then run:
        windeployqt <path-to-app-binary>
      
      If your application uses Qt Quick, run:
        windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>
      
      Options:
        -?, -h, --help                   Displays help on commandline options.
        --help-all                       Displays help including Qt specific options.
        -v, --version                    Displays version information.
        --dir <directory>                Use directory instead of binary directory.
        --qmake <path>                   Use specified qmake instead of qmake from
                                         PATH. Deprecated, use qtpaths instead.
        --qtpaths <path>                 Use specified qtpaths.exe instead of
                                         qtpaths.exe from PATH.
        --libdir <path>                  Copy libraries to path.
        --plugindir <path>               Copy plugins to path.
        --qml-deploy-dir <path>          Copy qml files to path.
        --debug                          Assume debug binaries.
        --release                        Assume release binaries.
        --pdb                            Deploy .pdb files (MSVC).
        --force                          Force updating files.
        --dry-run                        Simulation mode. Behave normally, but do not
                                         copy/update any files.
        --no-patchqt                     Do not patch the Qt6Core library.
        --ignore-library-errors          Ignore errors when libraries cannot be
                                         found.
        --no-plugins                     Skip plugin deployment.
        --no-libraries                   Skip library deployment.
        --qmldir <directory>             Scan for QML-imports starting from
                                         directory.
        --qmlimport <directory>          Add the given path to the QML module search
                                         locations.
        --no-quick-import                Skip deployment of Qt Quick imports.
        --translations <languages>       A comma-separated list of languages to
                                         deploy (de,fi).
        --no-translations                Skip deployment of translations.
        --no-system-d3d-compiler         Skip deployment of the system D3D compiler.
        --compiler-runtime               Deploy compiler runtime (Desktop only).
        --no-virtualkeyboard             Disable deployment of the Virtual Keyboard.
        --no-compiler-runtime            Do not deploy compiler runtime (Desktop
                                         only).
        --json                           Print to stdout in JSON format.
        --no-opengl-sw                   Do not deploy the software rasterizer
                                         library.
        --list <option>                  Print only the names of the files copied.
                                         Available options:
                                          source:   absolute path of the source files
                                          target:   absolute path of the target files
                                          relative: paths of the target files,
                                         relative
                                                    to the target directory
                                          mapping:  outputs the source and the
                                         relative
                                                    target, suitable for use within an
                                                    Appx mapping file
        --verbose <level>                Verbose level (0-2).
      

      I can think of --no-opengl-sw which doesn't deploy the 24 MiB opengl32sw.dll file, which nowadays Qt6 applications do not need. And if using Windows Store one could rely upon OpenCL™ and OpenGL® Compatibility Pack.

      And at windeployqt.exe looks for library in the wrong place the user would want to pass --ignore-library-errors.

      Attachments

        For Gerrit Dashboard: QTBUG-116551
        # Subject Branch Project Status CR V

        Activity

          People

            jbornema Joerg Bornemann
            cadam Cristian Adam
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes