diff options
authorAlexandru Croitor <>2016-06-13 17:15:04 +0200
committerChristian Tismer <>2016-06-16 09:40:32 +0000
commitc764273e64896215730e44eb907cd3535596ade4 (patch)
parent6b8818ccdaba58fb1309be32d2263c14f3ea08b7 (diff)
Fix OS/X inclusion of framework headers.
The recent change that made use of framework headers on OS/X did not work with homebrew Qt, and it didn't work with official builds either, because neither of the chosen include folders contained all the necessary headers to lead to a successful build. Fortunately shiboken actually supports being passed multiple include locations, separated by a colon on OS/X, and a semicolon on Windows. This patch makes sure to always pass the Qt include folder, and in case if the Qt build is a framework build, also passes the root frameworks location, with headers found by shiboken under frameworkName.framewework/Headers. This works for homebrew builds, official builds and custom non-installed prefix / in-source builds of Qt. Change-Id: I47b24e197839883de2ab873461efc1f4d4d33743 Reviewed-by: Christian Tismer <>
3 files changed, 51 insertions, 16 deletions
diff --git a/ b/
index 4be210bc..9ef0e589 100644
--- a/
+++ b/
@@ -633,11 +633,17 @@ class pyside_build(_build):
if sys.platform == 'darwin':
- # When using Qt from QtCompany installers, headers are under framework directories
+ # Shiboken supports specifying multiple include paths separated by a colon on *nix
+ # systems.
+ # In a framework build, two paths should be included:
+ # path_to_qt/lib -> which contains framework folders with headers, and
+ # path_to_qt/include -> which contains headers for static libraries.
+ # A non-framework build contains all headers in the path_to_qt/include folder.
+ path_separator = ":"
+ includes_dir = '-DALTERNATIVE_QT_INCLUDE_DIR=' + self.qtinfo.headers_dir
if os.path.isdir(self.qtinfo.headers_dir + "/../lib/QtCore.framework"):
- cmake_cmd.append('-DALTERNATIVE_QT_INCLUDE_DIR=' + self.qtinfo.headers_dir + "/../lib/")
- else:
- cmake_cmd.append('-DALTERNATIVE_QT_INCLUDE_DIR=' + self.qtinfo.headers_dir)
+ includes_dir += path_separator + self.qtinfo.headers_dir + "/../lib/"
+ cmake_cmd.append(includes_dir)
# also tell cmake which architecture to use
diff --git a/sources/pyside2 b/sources/pyside2
-Subproject e64dda26eb2042a8c0cd7c8a33b134dcf097936
+Subproject 23d77136da1f249f0a78c8c7e8124adc8c60423
diff --git a/sources/shiboken2 b/sources/shiboken2
-Subproject 4ba52d8a955613985485b14faf76aa66bac08cc
+Subproject 6a3f6544ec0b5a1bc3f8bbaf9269217a2072168