[QScintilla] Patch for fixing XCode 8 compile problem

Justin Clift justin at postgresql.org
Fri Oct 7 18:08:59 BST 2016


Hi all,

Apples latest Xcode release (version 8), barfs when compiling QScintilla2:

*****************************************************************

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -std=c++11 -DENABLE_SQLCIPHER -DCHECKNEWVERSION -O2 -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.8 -Wall -W -fPIC -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MACEXTRAS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I/usr/local/opt/sqlcipher/include -isystem /usr/local/include -I../libs/antlr-2.7.7 -I../libs/qhexedit -I../libs/qcustomplot-source -I../libs/qscintilla/Qt4Qt5 -I../../sqlitebrowser -I../../../Qt/5.7/clang_64/lib/QtPrintSupport.framework/Headers -I../../../Qt/5.7/clang_64/lib/QtWidgets.framework/Headers -I../../../Qt/5.7/clang_64/lib/QtMacExtras.framework/Headers -I../../../Qt/5.7/clang_64/lib/QtGui.framework/Headers -I../../../Qt/5.7/clang_64/lib/QtNetwork.framework/Headers -I../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers -Irelease -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/AGL.framework/Headers -I.ui -I../../../Qt/5.7/clang_64/mkspecs/macx-clang -F/Users/jc/Qt/5.7/clang_64/lib -o release/PreferencesDialog.o PreferencesDialog.cpp
In file included from MainWindow.cpp:2:
In file included from .ui/ui_MainWindow.h:43:
../libs/qcustomplot-source/qcustomplot.h:448:26: error: implicit instantiation of undefined template 'QPointer<QCPLayerable>'
  QPointer<QCPLayerable> mParentLayerable;
                         ^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:1339:1: note: template is declared here
QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER)
^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:215:7: note: expanded from macro 'QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER'
    F(QPointer)
      ^
In file included from MainWindow.cpp:2:
In file included from .ui/ui_MainWindow.h:43:
../libs/qcustomplot-source/qcustomplot.h:1465:21: error: implicit instantiation of undefined template 'QPointer<QCPAxis>'
  QPointer<QCPAxis> mKeyAxis, mValueAxis;
                    ^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:1339:1: note: template is declared here
QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER)
^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:215:7: note: expanded from macro 'QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER'
    F(QPointer)
      ^
In file included from MainWindow.cpp:2:
In file included from .ui/ui_MainWindow.h:43:
../libs/qcustomplot-source/qcustomplot.h:1465:31: error: implicit instantiation of undefined template 'QPointer<QCPAxis>'
  QPointer<QCPAxis> mKeyAxis, mValueAxis;
                              ^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:1339:1: note: template is declared here
QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER)
^
../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers/qmetatype.h:215:7: note: expanded from macro 'QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER'
    F(QPointer)
      ^

*****************************************************************

One of the Homebrew developers, "ilovezfs" (CC'd), came up with a working
fix:

  https://github.com/sqlitebrowser/sqlitebrowser/commit/969e263e5bf71e63df8ee908cb4a2014b9a55c9b

What's the correct way to submit that for inclusion in QScintilla2?

Source doesn't seem to be on GitHub (or even SourceForge), so unsure
of the correct approach. :)

Regards and best wishes,

Justin Clift

--
"My grandfather once told me that there are two kinds of people: those
who work and those who take the credit. He told me to try to be in the
first group; there was less competition there."
- Indira Gandhi



More information about the QScintilla mailing list