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

[cmake] dependent qml plugins not auto-loaded with statically linked qt

    XMLWordPrintable

Details

    • 2a664028a9cbbd94f87646b609d5aad7b781d792 (qt/qtdeclarative/dev) 9fc302e6d146878103b3d105dce49c7695fcf93a (qt/qtdeclarative/dev) 13bf176006d293a9cad337be16f134428e85699d (qt/qtdeclarative/6.2) 7c9368164c152bf3ff540d5384e557aed02fd238 (qt/qtdeclarative/6.2)

    Description

      first of all, many thanks for the work put into the qml/cmake tooling. trying to replace the use of the import scanner by linking qml plugin targets directly still does not work out of the box for me: then a qml plugin depends on another qml plugin, it will not "link" the object libraries containing the init code for the dependent qml plugins (it *does* however link with the object libraries containing the resources).

      simple reproducer:

      add_executable(ttt x.cpp)
      target_link_libraries(ttt PUBLIC Qt6::qtquickcontrols2plugin)
      

      the target will link `QuickControls2Impl_resources_1/.rcc/qrc_qmake_QtQuick_Controls_impl.cpp.o`, but it won't link `qtquickcontrols2implplugin_init.cpp.o`

      full linker command line below:

      /Applications/Xcode13.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Wdelete-non-virtual-dtor -Wdeprecated-writable-strings -Wmissing-braces -Wreturn-type -Wshorten-64-to-32 -Wsign-compare -Wunused-parameter -Wunused-private-field -Wunused-variable -Werror=unguarded-availability -Wno-error=parentheses -Wno-overloaded-virtual -Wno-reorder -Wno-unused-function -fcolor-diagnostics -fpascal-strings -g -arch x86_64 -isysroot /Applications/Xcode13.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk -mmacosx-version-min=10.14 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -dead_strip    -Wl,-dead_strip demos/odr-client/CMakeFiles/ttt.dir/x.cpp.o -o demos/odr-client/ttt  /QTPATH/./qml/QtQuick/Controls/objects-Debug/qtquickcontrols2plugin_init/qtquickcontrols2plugin_init.cpp.o  /QTPATH/./qml/QtQml/objects-Debug/Qml_resources_1/.rcc/qrc_qmake_QtQml.cpp.o  /QTPATH/./qml/QtQuick/Controls/objects-Debug/QuickControls2_resources_1/.rcc/qrc_qmake_QtQuick_Controls.cpp.o  /QTPATH/./qml/QtQuick/objects-Debug/qtquick2plugin_init/qtquick2plugin_init.cpp.o  /QTPATH/./qml/QtQml/Models/objects-Debug/modelsplugin_init/modelsplugin_init.cpp.o  /QTPATH/./qml/QtQml/objects-Debug/qmlplugin_init/qmlplugin_init.cpp.o  /QTPATH/./qml/QtQuick/Templates/objects-Debug/qtquicktemplates2plugin_init/qtquicktemplates2plugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QDebugMessageServiceFactoryPlugin_init/QDebugMessageServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QLocalClientConnectionFactoryPlugin_init/QLocalClientConnectionFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlDebugServerFactoryPlugin_init/QQmlDebugServerFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlDebuggerServiceFactoryPlugin_init/QQmlDebuggerServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlInspectorServiceFactoryPlugin_init/QQmlInspectorServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlNativeDebugConnectorFactoryPlugin_init/QQmlNativeDebugConnectorFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlNativeDebugServiceFactoryPlugin_init/QQmlNativeDebugServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlPreviewServiceFactoryPlugin_init/QQmlPreviewServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQmlProfilerServiceFactoryPlugin_init/QQmlProfilerServiceFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QQuickProfilerAdapterFactoryPlugin_init/QQuickProfilerAdapterFactoryPlugin_init.cpp.o  /QTPATH/./plugins/qmltooling/objects-Debug/QTcpServerConnectionFactoryPlugin_init/QTcpServerConnectionFactoryPlugin_init.cpp.o  /QTPATH/lib/objects-Debug/Gui_resources_1/.rcc/qrc_qpdf.cpp.o  /QTPATH/./qml/QtQuick/objects-Debug/Quick_resources_1/.rcc/qrc_qmake_QtQuick.cpp.o  /QTPATH/lib/objects-Debug/Quick_resources_2/.rcc/qrc_scenegraph_shaders.cpp.o  /QTPATH/./qml/QtQuick/Controls/impl/objects-Debug/QuickControls2Impl_resources_1/.rcc/qrc_qmake_QtQuick_Controls_impl.cpp.o  /QTPATH/./qml/QtQuick/Templates/objects-Debug/QuickTemplates2_resources_1/.rcc/qrc_qmake_QtQuick_Templates.cpp.o  /QTPATH/./qml/QtQml/Models/objects-Debug/QmlModels_resources_1/.rcc/qrc_qmake_QtQml_Models.cpp.o  /QTPATH/./qml/QtQml/WorkerScript/objects-Debug/workerscriptplugin_init/workerscriptplugin_init.cpp.o  /QTPATH/./plugins/networkinformation/objects-Debug/QSCNetworkReachabilityNetworkInformationPlugin_init/QSCNetworkReachabilityNetworkInformationPlugin_init.cpp.o  /QTPATH/./plugins/tls/objects-Debug/QSecureTransportBackendPlugin_init/QSecureTransportBackendPlugin_init.cpp.o  /QTPATH/lib/objects-Debug/QCocoaIntegrationPlugin_resources_1/.rcc/qrc_qcocoaresources.cpp.o  /QTPATH/./plugins/platforms/objects-Debug/QCocoaIntegrationPlugin_init/QCocoaIntegrationPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QGifPlugin_init/QGifPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QICNSPlugin_init/QICNSPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QICOPlugin_init/QICOPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QJpegPlugin_init/QJpegPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QMacHeifPlugin_init/QMacHeifPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QMacJp2Plugin_init/QMacJp2Plugin_init.cpp.o  /QTPATH/./plugins/iconengines/objects-Debug/QSvgIconPlugin_init/QSvgIconPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QSvgPlugin_init/QSvgPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QTgaPlugin_init/QTgaPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QTiffPlugin_init/QTiffPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QWbmpPlugin_init/QWbmpPlugin_init.cpp.o  /QTPATH/./plugins/imageformats/objects-Debug/QWebpPlugin_init/QWebpPlugin_init.cpp.o  /QTPATH/./qml/QtQml/WorkerScript/objects-Debug/QmlWorkerScript_resources_1/.rcc/qrc_qmake_QtQml_WorkerScript.cpp.o  /QTPATH/lib/objects-Debug/Widgets_resources_1/.rcc/qrc_qstyle.cpp.o  /QTPATH/lib/objects-Debug/Widgets_resources_2/.rcc/qrc_qstyle1.cpp.o  /QTPATH/lib/objects-Debug/Widgets_resources_3/.rcc/qrc_qmessagebox.cpp.o  /QTPATH/./plugins/styles/objects-Debug/QMacStylePlugin_init/QMacStylePlugin_init.cpp.o  /QTPATH/./qml/QtQuick/Controls/libqtquickcontrols2plugin_debug.a  /QTPATH/lib/libQt6QuickControls2Impl_debug.a  /QTPATH/lib/libQt6QuickControls2_debug.a  /QTPATH/./qml/QtQuick/Templates/libqtquicktemplates2plugin_debug.a  /QTPATH/./qml/QtQuick/libqtquick2plugin_debug.a  /QTPATH/./qml/QtQml/Models/libmodelsplugin_debug.a  /QTPATH/./qml/QtQml/libqmlplugin_debug.a  /QTPATH/./qml/QtQml/WorkerScript/libworkerscriptplugin_debug.a  /QTPATH/./qml/QtQml/libqmlplugin_debug.a  /QTPATH/./qml/QtQml/WorkerScript/libworkerscriptplugin_debug.a  /QTPATH/lib/libQt6QmlWorkerScript_debug.a  /QTPATH/lib/libQt6QuickTemplates2_debug.a  /QTPATH/lib/libQt6Qml_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_messages_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_local_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_server_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_debugger_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_inspector_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_native_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_nativedebugger_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_preview_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_profiler_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_quickprofiler_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_tcp_debug.a  /QTPATH/lib/libQt6Quick_debug.a  /QTPATH/lib/libQt6QmlModels_debug.a  /QTPATH/lib/libQt6Qml_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_messages_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_local_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_server_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_debugger_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_inspector_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_native_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_nativedebugger_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_preview_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_profiler_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_quickprofiler_debug.a  /QTPATH/./plugins/qmltooling/libqmldbg_tcp_debug.a  /QTPATH/lib/libQt6Quick_debug.a  /QTPATH/lib/libQt6QmlModels_debug.a  /QTPATH/lib/libQt6PacketProtocol_debug.a  /QTPATH/lib/libQt6Network_debug.a  /QTPATH/./plugins/networkinformation/libqscnetworkreachability_debug.a  /QTPATH/./plugins/tls/libqsecuretransportbackend_debug.a  /QTPATH/lib/libQt6Network_debug.a  /QTPATH/./plugins/networkinformation/libqscnetworkreachability_debug.a  /QTPATH/./plugins/tls/libqsecuretransportbackend_debug.a  -framework  GSS  -framework SystemConfiguration  /QTPATH/lib/libQt6OpenGL_debug.a  /QTPATH/lib/libQt6Gui_debug.a  /QTPATH/./plugins/platforms/libqcocoa_debug.a  /QTPATH/./plugins/imageformats/libqgif_debug.a  /QTPATH/./plugins/imageformats/libqicns_debug.a  /QTPATH/./plugins/imageformats/libqico_debug.a  /QTPATH/./plugins/imageformats/libqjpeg_debug.a  /QTPATH/./plugins/imageformats/libqmacheif_debug.a  /QTPATH/./plugins/imageformats/libqmacjp2_debug.a  /QTPATH/./plugins/iconengines/libqsvgicon_debug.a  /QTPATH/./plugins/imageformats/libqsvg_debug.a  /QTPATH/./plugins/imageformats/libqtga_debug.a  /QTPATH/./plugins/imageformats/libqtiff_debug.a  /QTPATH/./plugins/imageformats/libqwbmp_debug.a  /QTPATH/./plugins/imageformats/libqwebp_debug.a  /QTPATH/lib/libQt6Svg_debug.a  /QTPATH/lib/libQt6Widgets_debug.a  /QTPATH/./plugins/styles/libqmacstyle_debug.a  /QTPATH/lib/libQt6Gui_debug.a  /QTPATH/./plugins/platforms/libqcocoa_debug.a  /QTPATH/./plugins/imageformats/libqgif_debug.a  /QTPATH/./plugins/imageformats/libqicns_debug.a  /QTPATH/./plugins/imageformats/libqico_debug.a  /QTPATH/./plugins/imageformats/libqjpeg_debug.a  /QTPATH/./plugins/imageformats/libqmacheif_debug.a  /QTPATH/./plugins/imageformats/libqmacjp2_debug.a  /QTPATH/./plugins/iconengines/libqsvgicon_debug.a  /QTPATH/./plugins/imageformats/libqsvg_debug.a  /QTPATH/./plugins/imageformats/libqtga_debug.a  /QTPATH/./plugins/imageformats/libqtiff_debug.a  /QTPATH/./plugins/imageformats/libqwbmp_debug.a  /QTPATH/./plugins/imageformats/libqwebp_debug.a  /QTPATH/lib/libQt6Svg_debug.a  /QTPATH/lib/libQt6Widgets_debug.a  /QTPATH/./plugins/styles/libqmacstyle_debug.a  -framework  OpenGL  -framework  AGL  -framework CoreText  /3RDPART_PATH/libpng-1.6.23-R5/lib/osx/libpng-ni.a  /Applications/Xcode13.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.3.sdk/usr/lib/libz.tbd  /QTPATH/lib/libQt6BundledHarfbuzz_debug.a  /3RDPART_PATH/freetype-2.8-R8/lib/osx/libfreetype-ni.a  /QTPATH/lib/libQt6DBus_debug.a  -framework Carbon  -framework CoreVideo  -framework IOSurface  -framework Metal  -framework QuartzCore  /3RDPART_PATH/libjpeg-9a-R9/lib/osx/libjpeg-ni.a  -framework ImageIO  -framework CoreGraphics  -lz  /QTPATH/lib/libQt6Core_debug.a  -framework CoreFoundation  -framework Foundation  -framework DiskArbitration  -framework IOKit  -framework AppKit  -framework ApplicationServices  -framework CoreServices  -framework Security  -lz  -lm  /QTPATH/lib/libQt6BundledPcre2_debug.a
      

      Attachments

        Issue Links

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

          Activity

            People

              alexandru.croitor Alexandru Croitor
              timblechmann tim blechmann
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: