Blob Blame Raw
From 1e9817f99b405a66199fe9f62de31d3870e3ad12 Mon Sep 17 00:00:00 2001
From: Luca Beltrame <lbeltrame@kde.org>
Date: Fri, 20 Jun 2014 11:08:31 +0200
Subject: [PATCH] Fix building with PyQt >= 4.11

PyQt 4.11 adds new typedefs for GLuint, and these clash with the ones
defined in PyKDE4. Using a conditional in the sip file, the old
definitions are only kept if PyQt's version is lower than 4.11.

Checks have been added also for the Python 3 definitions.

CCMAIL: kde-packager@kde.org
---
 CMakeLists.txt          | 18 +++++++++++++++---
 sip/plasma/glapplet.sip |  5 +++++
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cf133d7..5233da8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -113,15 +113,27 @@ set(SIP_DISABLE_FEATURES VendorID PyQt_NoPrintRangeBug)
 # Use an extra option when compiling on Python 3.
 if (PYTHON_VERSION_MAJOR GREATER 2)
     if(PYQT4_VERSION STRGREATER "040904")
-	    # Disable for newer PyQt
-	    set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector)
+	    # Disable for features in newer Qt
+        if (PYQT4_VERSION STRGREATER "040a04")
+            # GLuint + QVector (PyQt > 4.11)
+            set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector -x PyKDE_GLuint)
+        else ()
+            # QVector (PyQt < 4.11)
+            set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector)
+        endif ()
     else ()
 	    set(SIP_EXTRA_OPTIONS -g)
     endif()
 else (PYTHON_VERSION_MAJOR GREATER 2)
     if(PYQT4_VERSION STRGREATER "040904")
 	# Disable for newer PyQt
-    	set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector -x Py_v3)
+        if (PYQT4_VERSION STRGREATER "040a04")
+            # GLuint + QVector (PyQt > 4.11)
+            set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector -x Py_v3 -x PyKDE_GLuint)
+        else ()
+            # QVector (PyQt < 4.11)
+            set(SIP_EXTRA_OPTIONS -P -g -x PyKDE_QVector -x Py_v3)
+        endif ()
     else ()
 	    set(SIP_EXTRA_OPTIONS -g -x Py_v3)
     endif()
diff --git a/sip/plasma/glapplet.sip b/sip/plasma/glapplet.sip
index ab35ccb..15dbd47 100644
--- a/sip/plasma/glapplet.sip
+++ b/sip/plasma/glapplet.sip
@@ -18,8 +18,13 @@
 // 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 //force
+
+%Feature PyKDE_GLuint
+
+%If (PyKDE_GLuint)
 typedef unsigned int GLuint;
 typedef unsigned int GLenum;
+%End
 
 namespace Plasma
 {
-- 
1.9.3