Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
None
-
5.2.0 RC1
-
None
-
Tested on:
- Mac OS X 10.6 + XCode 4.2.0
- Mac OS X 10.9 + XCode 5.0.2
and qt-everywhere-opensource-src-5.2.0-rc1 package
Description
There is some duplicate code in:
qtbase/src/plugins/platforms/cocoa/qmacmime.h (and corresponding .mm)
qtmacextras/include/QtMacExtras/qmacpasteboardmime.h (and corresponding .mm)
Source code contains this comment:
qmacmime.h: // Duplicate of QMacPasteboardMime in QtMacExtras. Keep in sync!
qmacpasteboardmime.h: // Duplicate of QMacPasteboardMime in the Cocoa Platform Plugin. Keep in sync!
Such hack is not compatible with a static build (build fails).
if I trash all code except:
"void qRegisterDraggedTypes(const QStringList &types)"
in qmacpasteboardmime.mm, build is OK (but because I don't the reason there is duplicate code and because I don't use QMacPasteboardMime, I don't know if such patch is OK for everybody).
***
Using qt-everywhere-opensource-src-5.2.0-rc1.* source package.
with this config:
./configure -release -opensource -confirm-license -static -no-framework
make
After some time, I have this error:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -stdlib=libc++ -mmacosx-version-min=10.7 -o macpasteboardmime.app/Contents/MacOS/macpasteboardmime .obj/main.o .obj/macpasteboardmime_plugin_import.o -L/Users/mymac/qt/qtbase/lib -framework ApplicationServices -framework CoreServices -framework CoreFoundation -framework Foundation -framework Cocoa -framework OpenGL -framework AGL -framework Carbon -L/Users/mymac/qt/qtmacextras/lib -lQt5MacExtras -framework AppKit -L/Users/mymac/qt/qtbase/plugins/platforms -lqcocoa -framework IOKit -lQt5PrintSupport -lQt5PlatformSupport -lQt5Widgets -lQt5Gui -lQt5Core -lz -lm
duplicate symbol __ZN18QMacPasteboardMimeC2Ec in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZTV18QMacPasteboardMime in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZN18QMacPasteboardMimeD0Ev in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZN18QMacPasteboardMimeD1Ev in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZN18QMacPasteboardMimeD2Ev in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZN18QMacPasteboardMime5countEP9QMimeData in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZTI18QMacPasteboardMime in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
duplicate symbol __ZTS18QMacPasteboardMime in:
/Users/mymac/qt/qtmacextras/lib/libQt5MacExtras.a(qmacpasteboardmime.o)
/Users/mymac/qt/qtbase/plugins/platforms/libqcocoa.a(qmacmime.o)
ld: 8 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [macpasteboardmime.app/Contents/MacOS/macpasteboardmime] Error 1
make[3]: *** [sub-macpasteboardmime-make_first] Error 2
make[2]: *** [sub-macextras-make_first] Error 2
make[1]: *** [sub-examples-make_first] Error 2
make: *** [module-qtmacextras-make_first] Error 2