summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2016-06-13 17:15:04 +0200
committerChristian Tismer <tismer@stackless.com>2016-06-16 09:40:32 +0000
commitc764273e64896215730e44eb907cd3535596ade4 (patch)
tree1837b351e332b1fd4118053285fa0cb374e43335
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 <tismer@stackless.com>
-rw-r--r--setup.py14
m---------sources/pyside231
m---------sources/shiboken222
3 files changed, 51 insertions, 16 deletions
diff --git a/setup.py b/setup.py
index 4be210bc..9ef0e589 100644
--- a/setup.py
+++ b/setup.py
@@ -633,11 +633,17 @@ class pyside_build(_build):
cmake_cmd.append("-DUSE_PYTHON_VERSION=3.4")
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)
if OPTION_OSXARCH:
# 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