Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

QtGraphicalEffects not included in mac deployment



  • Hello.

    I am trying to deploy a QtQuick app for the mac but macdeployqt seems to be skipping or missing the QtGraphicalEffects module in the final DMG file.

    The DMG seems to build fine. When I mount the generated DMG and inspect the contents of the package, I see the Contents tree, which has 'Frameworks' and 'MacOS' sub-directories. The Frameworks directory does NOT contain QtGraphicalEffects.framework or any mention of QtGraphicalEffects.

    When I try to run the app from the MacOS subdirectory of the package, an error is reported to the console:

    qrc:/TopPanel.qml:2 module "QtGraphicalEffects" is not installed

    Here is the command line I use to create the DMG:

    ./macdeployqt /Users/(me)/Projects/QtQuickProjects/build-(myapp)-Desktop_Qt_5_9_1_clang_64bit-Release/(myapp).app/ -qmldir=/Users/(me)/Qt5.9/5.9.1/clang_64/qml -verbose=1 -dmg
    

    In my /Users/(me)/Qt5.9/5.9.1/clang_64/qml directory, the QtGraphicalEffects directory exists, along with all the other modules that are successfully included in the DMG file.

    So, my questions are:

    1. why isn't QtGraphicalEffects being included?

    2. how do I go about including it into the deployment?

    Thank you very much in advance.

    Kind Regards,

    Carlos



  • I think you are mis-using the -qmldir option, it should point to a folder where you have your own QML files.
    It will parse them and detect what plugins to install.


  • Lifetime Qt Champion

    Hi,

    Can you provide a small sample application that triggers that behaviour ?



  • @SGaist Yes, of course. And thanks for replying.

    Here is a sample app that has the same effect:

    import QtQuick 2.9
    import QtQuick.Window 2.2
    import QtGraphicalEffects 1.0
    
    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World")
    
        Rectangle {
            anchors.fill: parent
            gradient: Gradient {
                GradientStop { position: 0.0; color: "white" }
                GradientStop { position: 0.06; color: "#93A8B8" }
                GradientStop { position: 0.45; color: "#B9E1E5" }
                GradientStop { position: 0.55; color: "#B9E1E5" }
                GradientStop { position: 1.0; color: "#71859D" }
            }
        }
    }
    

    I used the same macdeployqt statement and I get the same error message.



  • I think you are mis-using the -qmldir option, it should point to a folder where you have your own QML files.
    It will parse them and detect what plugins to install.


  • Lifetime Qt Champion

    @MaxL is right !

    I missed the ending of your macdeployqt command. -qmldir must indeed be pointed to your projects QML sources.



  • @MaxL Yes! That did it. I had been misusing that option from the start. Thanks for spotting it!