aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-19 08:23:58 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-05-19 08:24:02 +0200
commit8f3fca016b9bdec0975d2f4d17d39782399e3701 (patch)
tree5ea08ba303f82b0fa0e260633f0edc6582e6a53d /setup.py
parent9d454fbb9808a337dbcc4c9703c1359c8698fff0 (diff)
parent48f179d684d97445c3b6c1426d81915e15049aed (diff)
Merge remote-tracking branch 'origin/5.6' into 5.9
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py68
1 files changed, 49 insertions, 19 deletions
diff --git a/setup.py b/setup.py
index 0ac7677b0..8349ff3ef 100644
--- a/setup.py
+++ b/setup.py
@@ -581,6 +581,8 @@ class pyside_build(_build):
else: # Python 2
lib_suff = ''
lib_exts.append('.so.1')
+ # Suffix for OpenSuSE 13.01
+ lib_exts.append('.so.1.0')
lib_exts.append('.a') # static library as last gasp
if sys.version_info[0] == 2 and dbgPostfix:
@@ -590,33 +592,55 @@ class pyside_build(_build):
# be built with a non-debug Python.
lib_exts = [dbgPostfix + e for e in lib_exts] + lib_exts
+ python_library_found = False
libs_tried = []
for lib_ext in lib_exts:
lib_name = "libpython%s%s%s" % (py_version, lib_suff, lib_ext)
py_library = os.path.join(py_libdir, lib_name)
if os.path.exists(py_library):
+ python_library_found = True
break
libs_tried.append(py_library)
else:
- py_multiarch = get_config_var("MULTIARCH")
- if py_multiarch:
- try_py_libdir = os.path.join(py_libdir, py_multiarch)
- libs_tried = []
- for lib_ext in lib_exts:
- lib_name = "libpython%s%s%s" % (py_version, lib_suff, lib_ext)
- py_library = os.path.join(try_py_libdir, lib_name)
- if os.path.exists(py_library):
- py_libdir = try_py_libdir
- break
- libs_tried.append(py_library)
+ # At least on macOS 10.11, the system Python 2.6 does not include a symlink
+ # to the framework file disguised as a .dylib file, thus finding the library would
+ # fail. Manually check if a framework file "Python" exists in the Python framework
+ # bundle.
+ if sys.platform == 'darwin' and sys.version_info[:2] == (2, 6):
+ # These manipulations essentially transform
+ # /System/Library/Frameworks/Python.framework/Versions/2.6/lib
+ # to /System/Library/Frameworks/Python.framework/Versions/2.6/Python
+ possible_framework_path = os.path.realpath(os.path.join(py_libdir, '..'))
+ possible_framework_version = os.path.basename(possible_framework_path)
+ possible_framework_library = os.path.join(possible_framework_path, 'Python')
+
+ if possible_framework_version == '2.6' \
+ and os.path.exists(possible_framework_library):
+ py_library = possible_framework_library
+ python_library_found = True
else:
- raise DistutilsSetupError(
- "Failed to locate the Python library with %s" %
- ', '.join(libs_tried))
- else:
- raise DistutilsSetupError(
- "Failed to locate the Python library with %s" %
- ', '.join(libs_tried))
+ libs_tried.append(possible_framework_library)
+
+ # Try to find shared libraries which have a multi arch suffix.
+ if not python_library_found:
+ py_multiarch = get_config_var("MULTIARCH")
+ if py_multiarch and not python_library_found:
+ try_py_libdir = os.path.join(py_libdir, py_multiarch)
+ libs_tried = []
+ for lib_ext in lib_exts:
+ lib_name = "libpython%s%s%s" % (py_version, lib_suff, lib_ext)
+ py_library = os.path.join(try_py_libdir, lib_name)
+ if os.path.exists(py_library):
+ py_libdir = try_py_libdir
+ python_library_found = True
+ break
+ libs_tried.append(py_library)
+
+ if not python_library_found:
+ raise DistutilsSetupError(
+ "Failed to locate the Python library with %s" %
+ ', '.join(libs_tried))
+
if py_library.endswith('.a'):
# Python was compiled as a static library
log.error("Failed to locate a dynamic Python library, using %s"
@@ -831,7 +855,13 @@ class pyside_build(_build):
cmake_cmd.append("-DOSX_USE_LIBCPP=ON")
if OPTION_OSX_SYSROOT:
- cmake_cmd.append("-DCMAKE_OSX_SYSROOT={}".format(OPTION_OSX_SYSROOT))
+ cmake_cmd.append("-DCMAKE_OSX_SYSROOT={0}".format(OPTION_OSX_SYSROOT))
+ else:
+ latest_sdk_path = run_process_output(['xcrun', '--show-sdk-path'])
+ if latest_sdk_path:
+ latest_sdk_path = latest_sdk_path[0]
+ cmake_cmd.append("-DCMAKE_OSX_SYSROOT={0}".format(latest_sdk_path))
+
if not OPTION_SKIP_CMAKE:
log.info("Configuring module %s (%s)..." % (extension, module_src_dir))