Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.14.0
-
cca279338c5778fe09fa52384a1ffa5531885cf5 (qt/qtbase/5.14)
Description
i have the following library layout:
add_library( lib lib.cpp ) target_link_libraries( lib PRIVATE Qt5::Qml Qt5::Quick Qt5::Core ) add_executable( app app.cpp ) target_link_libraries( app lib )
this causes cmake to link with the following command line:
/Applications/Xcode10.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 -Wno-logical-op-parentheses -Wno-overloaded-virtual -Wno-reorder -Wno-unused-function -fcolor-diagnostics -fpascal-strings -g -arch x86_64 -isysroot /Applications/Xcode10.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -dead_strip path/to/CMakeFiles/app.dir/app.cpp.o -o path/to/app path/to/liblib.a path/to/qt/lib/libQt5Qml_debug.a path/to/qt/lib/libQt5Quick_debug.a path/to/qt/plugins/qmltooling/libqmldbg_messages_debug.a path/to/qt/plugins/qmltooling/libqmldbg_local_debug.a path/to/qt/plugins/qmltooling/libqmldbg_server_debug.a path/to/qt/plugins/qmltooling/libqmldbg_debugger_debug.a path/to/qt/plugins/qmltooling/libqmldbg_inspector_debug.a path/to/qt/plugins/qmltooling/libqmldbg_native_debug.a path/to/qt/plugins/qmltooling/libqmldbg_nativedebugger_debug.a path/to/qt/plugins/qmltooling/libqmldbg_preview_debug.a path/to/qt/plugins/qmltooling/libqmldbg_profiler_debug.a path/to/qt/plugins/qmltooling/libqmldbg_quickprofiler_debug.a path/to/qt/plugins/qmltooling/libqmldbg_tcp_debug.a path/to/qt/lib/libQt5QmlModels_debug.a path/to/qt/lib/libQt5Qml_debug.a path/to/qt/lib/libQt5Quick_debug.a path/to/qt/plugins/qmltooling/libqmldbg_messages_debug.a path/to/qt/plugins/qmltooling/libqmldbg_local_debug.a path/to/qt/plugins/qmltooling/libqmldbg_server_debug.a path/to/qt/plugins/qmltooling/libqmldbg_debugger_debug.a path/to/qt/plugins/qmltooling/libqmldbg_inspector_debug.a path/to/qt/plugins/qmltooling/libqmldbg_native_debug.a path/to/qt/plugins/qmltooling/libqmldbg_nativedebugger_debug.a path/to/qt/plugins/qmltooling/libqmldbg_preview_debug.a path/to/qt/plugins/qmltooling/libqmldbg_profiler_debug.a path/to/qt/plugins/qmltooling/libqmldbg_quickprofiler_debug.a path/to/qt/plugins/qmltooling/libqmldbg_tcp_debug.a path/to/qt/lib/libQt5QmlModels_debug.a path/to/qt/lib/libQt5Gui_debug.a path/to/qt/plugins/platforms/libqcocoa_debug.a path/to/qt/plugins/imageformats/libqgif_debug.a path/to/qt/plugins/imageformats/libqicns_debug.a path/to/qt/plugins/imageformats/libqico_debug.a path/to/qt/plugins/imageformats/libqjpeg_debug.a path/to/qt/plugins/imageformats/libqmacheif_debug.a path/to/qt/plugins/imageformats/libqmacjp2_debug.a path/to/qt/plugins/imageformats/libqtga_debug.a path/to/qt/plugins/imageformats/libqtiff_debug.a path/to/qt/plugins/imageformats/libqwbmp_debug.a path/to/qt/plugins/imageformats/libqwebp_debug.a path/to/qt/lib/libQt5AccessibilitySupport_debug.a path/to/qt/lib/libQt5ThemeSupport_debug.a path/to/qt/lib/libQt5FontDatabaseSupport_debug.a path/to/qt/lib/libQt5GraphicsSupport_debug.a path/to/qt/lib/libQt5PrintSupport_debug.a path/to/qt/lib/libQt5Widgets_debug.a path/to/qt/lib/libQt5ClipboardSupport_debug.a path/to/qt/plugins/printsupport/libcocoaprintersupport_debug.a path/to/qt/plugins/styles/libqmacstyle_debug.a path/to/qt/lib/libQt5Gui_debug.a path/to/qt/plugins/platforms/libqcocoa_debug.a path/to/qt/plugins/imageformats/libqgif_debug.a path/to/qt/plugins/imageformats/libqicns_debug.a path/to/qt/plugins/imageformats/libqico_debug.a path/to/qt/plugins/imageformats/libqjpeg_debug.a path/to/qt/plugins/imageformats/libqmacheif_debug.a path/to/qt/plugins/imageformats/libqmacjp2_debug.a path/to/qt/plugins/imageformats/libqtga_debug.a path/to/qt/plugins/imageformats/libqtiff_debug.a path/to/qt/plugins/imageformats/libqwbmp_debug.a path/to/qt/plugins/imageformats/libqwebp_debug.a path/to/qt/lib/libQt5AccessibilitySupport_debug.a path/to/qt/lib/libQt5ThemeSupport_debug.a path/to/qt/lib/libQt5FontDatabaseSupport_debug.a path/to/qt/lib/libQt5GraphicsSupport_debug.a path/to/qt/lib/libQt5PrintSupport_debug.a path/to/qt/lib/libQt5Widgets_debug.a path/to/qt/lib/libQt5ClipboardSupport_debug.a path/to/qt/plugins/printsupport/libcocoaprintersupport_debug.a path/to/qt/plugins/styles/libqmacstyle_debug.a /usr/lib/libcups.dylib path/to/qt/lib//libQt5AccessibilitySupport_debug.a path/to/qt/lib//libQt5ThemeSupport_debug.a path/to/qt/lib//libQt5FontDatabaseSupport_debug.a path/to/qt/lib//libQt5GraphicsSupport_debug.a path/to/qt/lib//libQt5ClipboardSupport_debug.a /usr/local/lib/libjpeg.dylib path/to/qt/lib//libQt5DBus_debug.a /usr/local/lib/libfreetype.dylib path/to/qt/lib//libQt5PrintSupport_debug.a path/to/qt/lib//libQt5Widgets_debug.a path/to/qt/lib/libQt5PacketProtocol_debug.a path/to/qt/lib//libQt5Quick_debug.a path/to/qt/lib//libQt5Gui_debug.a /usr/local/lib/libpng.dylib path/to/qt/lib//libqtharfbuzz_debug.a path/to/qt/lib//libQt5QmlModels_debug.a path/to/qt/lib//libQt5PacketProtocol_debug.a path/to/qt/lib/libQt5Network_debug.a path/to/qt/plugins/bearer/libqgenericbearer_debug.a path/to/qt/lib/libQt5Network_debug.a path/to/qt/plugins/bearer/libqgenericbearer_debug.a path/to/qt/lib//libQt5Qml_debug.a path/to/qt/lib//libQt5Network_debug.a path/to/qt/lib//libQt5Core_debug.a path/to/qt/lib/libQt5Core_debug.a /usr/lib/libm.dylib /usr/lib/libz.dylib path/to/qt/lib//libqtpcre2_debug.a
especially: this drops all usage requirements for qt libraries.
if i link the qt libs `PUBLIC`ly instead of `PRIVATE`ly, the frameworks are correctly passed:
/Applications/Xcode10.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 -Wno-logical-op-parentheses -Wno-overloaded-virtual -Wno-reorder -Wno-unused-function -fcolor-diagnostics -fpascal-strings -g -arch x86_64 -isysroot /Applications/Xcode10.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.13 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -dead_strip -framework SystemConfiguration -framework GSS -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework Security -framework CoreFoundation -framework CoreServices -framework SystemConfiguration -framework GSS -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework Metal -framework CoreGraphics -framework SystemConfiguration -framework GSS -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework SystemConfiguration -framework GSS -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework SystemConfiguration -framework GSS -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework Metal -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework AppKit -framework CoreGraphics -framework Foundation -framework OpenGL -framework AGL -framework ApplicationServices -framework Carbon -framework QuartzCore -framework CoreVideo -framework IOSurface -framework CoreText -framework ImageIO -framework Metal -framework CoreGraphics -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework AppKit -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework AppKit -framework OpenGL -framework AGL -framework Metal -framework CoreGraphics -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework AppKit -framework Metal -framework CoreGraphics -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL -framework ImageIO -framework Metal -framework CoreGraphics -framework OpenGL -framework AGL -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework AppKit -framework OpenGL -framework AGL -framework ImageIO -framework Metal -framework CoreGraphics -framework DiskArbitration -framework IOKit -framework AppKit -framework Security -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework OpenGL -framework AGL path/to/CMakeFiles/app.dir/app.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Network/Qt5Network_QGenericEnginePlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QDebugMessageServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QLocalClientConnectionFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlDebugServerFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlDebuggerServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlInspectorServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QCocoaIntegrationPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Widgets/Qt5Widgets_QMacStylePlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5PrintSupport/Qt5PrintSupport_QCocoaPrinterSupportPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QGifPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QICNSPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QICOPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QJpegPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QMacHeifPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QMacJp2Plugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QTgaPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QTiffPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QWbmpPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Gui/Qt5Gui_QWebpPlugin_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlNativeDebugConnectorFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlNativeDebugServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlPreviewServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQmlProfilerServiceFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QQuickProfilerAdapterFactory_Import.cpp.o path/to/CMakeFiles/app.dir/path/to/qt/lib/cmake/Qt5Qml/Qt5Qml_QTcpServerConnectionFactory_Import.cpp.o -o path/to/app path/to/liblib.a /path/to/qt/lib/libQt5Qml_debug.a /path/to/qt/lib/libQt5Quick_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_messages_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_local_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_server_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_debugger_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_inspector_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_native_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_nativedebugger_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_preview_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_profiler_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_quickprofiler_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_tcp_debug.a /path/to/qt/lib/libQt5QmlModels_debug.a /path/to/qt/lib/libQt5Qml_debug.a /path/to/qt/lib/libQt5Quick_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_messages_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_local_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_server_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_debugger_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_inspector_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_native_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_nativedebugger_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_preview_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_profiler_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_quickprofiler_debug.a /path/to/qt/plugins/qmltooling/libqmldbg_tcp_debug.a /path/to/qt/lib/libQt5QmlModels_debug.a /path/to/qt/lib/libQt5Gui_debug.a /path/to/qt/plugins/platforms/libqcocoa_debug.a /path/to/qt/plugins/imageformats/libqgif_debug.a /path/to/qt/plugins/imageformats/libqicns_debug.a /path/to/qt/plugins/imageformats/libqico_debug.a /path/to/qt/plugins/imageformats/libqjpeg_debug.a /path/to/qt/plugins/imageformats/libqmacheif_debug.a /path/to/qt/plugins/imageformats/libqmacjp2_debug.a /path/to/qt/plugins/imageformats/libqtga_debug.a /path/to/qt/plugins/imageformats/libqtiff_debug.a /path/to/qt/plugins/imageformats/libqwbmp_debug.a /path/to/qt/plugins/imageformats/libqwebp_debug.a /path/to/qt/lib/libQt5AccessibilitySupport_debug.a /path/to/qt/lib/libQt5ThemeSupport_debug.a /path/to/qt/lib/libQt5FontDatabaseSupport_debug.a /path/to/qt/lib/libQt5GraphicsSupport_debug.a /path/to/qt/lib/libQt5PrintSupport_debug.a /path/to/qt/lib/libQt5Widgets_debug.a /path/to/qt/lib/libQt5ClipboardSupport_debug.a /path/to/qt/plugins/printsupport/libcocoaprintersupport_debug.a /path/to/qt/plugins/styles/libqmacstyle_debug.a /path/to/qt/lib/libQt5Gui_debug.a /path/to/qt/plugins/platforms/libqcocoa_debug.a /path/to/qt/plugins/imageformats/libqgif_debug.a /path/to/qt/plugins/imageformats/libqicns_debug.a /path/to/qt/plugins/imageformats/libqico_debug.a /path/to/qt/plugins/imageformats/libqjpeg_debug.a /path/to/qt/plugins/imageformats/libqmacheif_debug.a /path/to/qt/plugins/imageformats/libqmacjp2_debug.a /path/to/qt/plugins/imageformats/libqtga_debug.a /path/to/qt/plugins/imageformats/libqtiff_debug.a /path/to/qt/plugins/imageformats/libqwbmp_debug.a /path/to/qt/plugins/imageformats/libqwebp_debug.a /path/to/qt/lib/libQt5AccessibilitySupport_debug.a /path/to/qt/lib/libQt5ThemeSupport_debug.a /path/to/qt/lib/libQt5FontDatabaseSupport_debug.a /path/to/qt/lib/libQt5GraphicsSupport_debug.a /path/to/qt/lib/libQt5PrintSupport_debug.a /path/to/qt/lib/libQt5Widgets_debug.a /path/to/qt/lib/libQt5ClipboardSupport_debug.a /path/to/qt/plugins/printsupport/libcocoaprintersupport_debug.a /path/to/qt/plugins/styles/libqmacstyle_debug.a /usr/lib/libcups.dylib /path/to/qt/lib//libQt5AccessibilitySupport_debug.a /path/to/qt/lib//libQt5ThemeSupport_debug.a /path/to/qt/lib//libQt5FontDatabaseSupport_debug.a /path/to/qt/lib//libQt5GraphicsSupport_debug.a /path/to/qt/lib//libQt5ClipboardSupport_debug.a /usr/local/lib/libjpeg.dylib /path/to/qt/lib//libQt5DBus_debug.a /usr/local/lib/libfreetype.dylib /path/to/qt/lib//libQt5PrintSupport_debug.a /path/to/qt/lib//libQt5Widgets_debug.a /path/to/qt/lib/libQt5PacketProtocol_debug.a /path/to/qt/lib//libQt5Quick_debug.a /path/to/qt/lib//libQt5Gui_debug.a /usr/local/lib/libpng.dylib /path/to/qt/lib//libqtharfbuzz_debug.a /path/to/qt/lib//libQt5QmlModels_debug.a /path/to/qt/lib//libQt5PacketProtocol_debug.a /path/to/qt/lib/libQt5Network_debug.a /path/to/qt/plugins/bearer/libqgenericbearer_debug.a /path/to/qt/lib/libQt5Network_debug.a /path/to/qt/plugins/bearer/libqgenericbearer_debug.a /path/to/qt/lib//libQt5Qml_debug.a /path/to/qt/lib//libQt5Network_debug.a /path/to/qt/lib//libQt5Core_debug.a /path/to/qt/lib/libQt5Core_debug.a /usr/lib/libm.dylib /usr/lib/libz.dylib /path/to/qt/lib//libqtpcre2_debug.a
all frameworks and all plugin import files are passed correctly now
Attachments
Issue Links
- relates to
-
QTBUG-81369 [REG][CMake] Using a static Qt library of a macOS framework build does not work
- Closed
For Gerrit Dashboard: QTBUG-80855 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
285556,2 | CMake: Fix usage requirements for static builds of Qt on macOS | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |