diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-05-19 08:23:58 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-05-19 08:24:02 +0200 |
commit | 8f3fca016b9bdec0975d2f4d17d39782399e3701 (patch) | |
tree | 5ea08ba303f82b0fa0e260633f0edc6582e6a53d /setup.py | |
parent | 9d454fbb9808a337dbcc4c9703c1359c8698fff0 (diff) | |
parent | 48f179d684d97445c3b6c1426d81915e15049aed (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.9
Change-Id: I551cb95411e934d2a9f2b747ca70cf9a063b65c1
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 68 |
1 files changed, 49 insertions, 19 deletions
@@ -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)) |