James - 2017-03-29

Qt5.6.1 is of particular interest because of this specification: http://www.vfxplatform.com

I just finished building 3.1 for Linux, Mac and Windows. On the whole pretty easy, I used qmake on all platforms

Windows x64
vc14 sp3
Python 2.7.13
zero issues, it pretty much built everything and the examples linked and ran. Awesome, I love this library!

OSX 10.11
Xcode7 libc/c++11
Python 2.7.10 (the same as the Apple installed version)

one issue. 2.7.10 is before a tiny patch made to pyport.h that #ifdef's out the porting macros for isupper() which no longer apply and breaks the PythonQt build. I just rebuilt 2.7.10 with those lines with a #if 0 around them.

Linux RHEL6 (This is an old linux release that comes with gcc4.4 but I had no choice)
gcc-4.8.3 (dictated in the above spec)
Python 2.7.2 (don't ask)

couple of issues, one was when one of the preprocessed files was moc'd I'd get compile errors that truncate64 was not a member of the PythonQt marshalling object, it isn't! The issue is that one of the headers from gcc4.8 or Python was triggering the macro redefinition in the moc. Maybe this would go away if you used an up to date python or didn't need to be running on rhel6. I just put

#ifdef truncate64
#undef truncate64
#endif

near the top of this pre-generated file after all the includes:

generated_cpp_56/com_trolltech_qt_core_builtin/com_trolltech_qt_core_builtin0.h

The macro is intending to divert calls to ::truncate() to ::truncate64() which is not what we want here.

Only other problem was minor but puzzling. The example PyGuiExample, PyScriptingConsole and PyLauncher didn't link because in their .pro file it just has:

QT += widgets

but of couse libPythonQt_QtAll.so needs many more of the Qt libs. I just hacked the Makefiles.

I did not have any issue with needing WebKit as I saw others having, I did not build it when I made Qt. Maybe this has been fixed in 3.1 or maybe building Qt5.6.1 from git source makes the configuration occur differently.

Hope that helps someone and thank you for this code.