Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Qt5 dependencies on Windows are quite heavy

    Independent Developers
    3
    5
    12399
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      ckakman last edited by

      Qt 5.0.0 RC1 was released yesterday. I installed it to find out what is required to deploy a simple Qt5Widgets application.

      Here is the dependency hierarchy on Windows (excluding platform libraries):
      Qt5Widgets (4MB) depends on

      • Qt5GUI (2.7MB)
        ** libGLESV2 (0.7MB)
        *** D3DCompiler_43 (2MB)
        *** libEGL (0.06MB) (not a hard-dependency but even the simplest app doesn't run without it)
      • Qt5Core (3.5MB)
        ** icuuc49 (1MB)
        ** icuin49 (1.3MB)
        ** icudt49 (17.1MB)

      TOTAL: ~32.3MB

      If you want to use any function from the QtConcurrent namespace, Qt5Concurrent (18 KB) should be deployed as well. A console application or a service that just uses Qt5Core would require Qt5Core + 3 ICU libraries = ~23MB. "ICU":http://site.icu-project.org/ is the "new localization backend":http://qt-project.org/wiki/Qt-5-ICU for Qt5. A simple Qt4 GUI app requires 10.3 MB of Qt libraries (Core+GUI).

      I checked several Qt-based Windows applications I use (Clementine, VLC, CppCheck, Calibre, CMake-GUI, Doxywizard, Spideroak etc.) Most of them deploy shared libraries and Qt takes a significant percentage of the disk footprint. That footprint would be more than doubled for the smaller of these applications if they switched to Qt5.

      I wonder whether ICU is necessary for just visible string translations and QString Unicode support. If not, maybe ICU may become optional and Qt5 may become somewhat more suitable for library and widget-based application development.

      A QtQuick application would just drop 4MB Qt5Widgets dependency but depend, besides the ~28MB of libraries, on the following:

      • Qt5Quick (1.9MB)
        ** Qt5Qml (1.3MB)
        ** Qt5V8 (2.4MB)
        ** Qt5Network (0.8MB)

      TOTAL: 6.4MB
      GRAND TOTAL: 34.7MB

      For the time-being I will stick with Qt4.

      1 Reply Last reply Reply Quote 0
      • sierdzio
        sierdzio Moderators last edited by

        You can compile Qt5 with -no-icu flag set.

        (Z(:^

        1 Reply Last reply Reply Quote 0
        • L
          lgeyer last edited by

          ICU is a hard requirement for WebKit (only).

          1 Reply Last reply Reply Quote 0
          • C
            ckakman last edited by

            [quote author="Lukas Geyer" date="1354872607"]ICU is a hard requirement for WebKit (only).[/quote]

            Qt5Core in 5.0.0 RC1 on Windows hard-depends on ICU libraries. I tested it, verified with Dependency Walker as well.

            1 Reply Last reply Reply Quote 0
            • L
              lgeyer last edited by

              Yes, because if you build Qt 5 with ICU to enable WebKit QtCore will also take advantage of it.

              As sierdzio has already mentioned you can disable ICU using the -no-icu flag so that QtCore should no longer depend on it. But you can't build WebKit without ICU.

              You might be able to build Qt 5 without ICU and WebKit with ICU using different configurations, but I haven't tried that yet.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post