Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. macdeployqt ends up with lots of lib clutter

macdeployqt ends up with lots of lib clutter

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
4 Posts 2 Posters 360 Views
  • 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.
  • P Offline
    P Offline
    PSI_lbc
    wrote on last edited by
    #1

    Application requirements in .pro file

    equals(QT_MAJOR_VERSION, 5) {
    #5.8.0 and > ?
    QT += core gui
    QT += widgets

    win32 {
    #needed until the win7 qt is updated to 5.13
    ##win 5.8
    QT += webkit
    QT += webkitwidgets
    FRMBUYIT = frmBuyIt-w.ui
    }
    macx {
    #osx qt 5.13
    QT += webenginewidgets
    FRMBUYIT = frmBuyIt.ui
    }

    QT += printsupport
    QT += xml
    QT += network
    }

    Results of macdeployqt in Frameworks folder

    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtCore.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtDBus.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtGui.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtNetwork.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtPositioning.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtPrintSupport.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtQml.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtQuick.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtQuickWidgets.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtSerialPort.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtSvg.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtVirtualKeyboard.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtWebChannel.framework
    drwxr-xr-x 6 PSI staff 192 Jan 27 18:46 QtWebEngineCore.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtWebEngineWidgets.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtWidgets.framework
    drwxr-xr-x 5 PSI staff 160 Jan 27 18:46 QtXml.framework

    The items in BOLD aren't used that I know of.

    The reason this is a problem, is that when a release was made using Qt5.8.0 the App bundle size was ~70MB and now using Qt5.13 the App bundle size with the additional BOLD libs is ~210MB.

    Seems wrong.

    Nothing in the code changed going from 5.8 to 5.13. Just minor changes because of Qt deprecation of WebKit support for OSX.

    IDK. Just live with it or manually delete the Framework libs that I know the application does not use?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      One thing you can do is use otool to check the direct dependencies of your application and then the ones from the frameworks linked to your application.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • P Offline
        P Offline
        PSI_lbc
        wrote on last edited by
        #3

        Thx.

        This is the result...assume this is what you meant...

        SFA is the unix executable in the MacOS folder inside the app bundle.

        otool -L SFA
        SFA:
        @rpath/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtWebEngineCore.framework/Versions/5/QtWebEngineCore (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtQuick.framework/Versions/5/QtQuick (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtWebChannel.framework/Versions/5/QtWebChannel (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtQml.framework/Versions/5/QtQml (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtNetwork.framework/Versions/5/QtNetwork (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtPositioning.framework/Versions/5/QtPositioning (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtXml.framework/Versions/5/QtXml (compatibility version 5.13.0, current version 5.13.1)
        @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.13.0, current version 5.13.1)
        /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
        /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
        /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)

        The only change from the Qt 5.8 to 5.13 build was the use of QWebEngine to replace QWebKit that was used in 5.8.

        My app does not use QtVirtualKeyBoard, QtPositioning, QtSerialPort, QML or QtQuick , so I assume it is the QWebEngine that does.

        Qt Creator 4.10.0
        Based on Qt 5.13.1 (Clang 10.0 (Apple), 64 bit)
        Built on Sep 4 2019 01:16:42

        Using the qmake in Creator to generate the LIBS list..I assume qmake does this based on the include files used in the app itself.

        IDK. I tried "renaming" framework folders in the app bundle to see if the app actually used the Qt Framework libraries placed there by macdeployqt. Not sure if this is an acceptable way to check library usage. Didn't work except for the QtVirtualKeyboard.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by SGaist
          #4

          Indeed, QtWebEngine has a lot of dependencies because of all the uses case it supports.

          You can check that using the same command on the QtWebEngine library contained in the corresponding framework.

          I just don't see why QtSerialPort.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • timdayT timday referenced this topic on

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved