--- pyobjc_setup.py.orig 2019-10-16 20:40:22.000000000 +1100 +++ pyobjc_setup.py 2019-10-24 20:40:00.000000000 +1100 @@ -207,14 +207,28 @@ v = pl['ProductVersion'] return '.'.join(v.split('.')[:2]) -def get_sdk_level(): - cflags = get_config_var('CFLAGS') - cflags = shlex.split(cflags) - for i, val in enumerate(cflags): - if val == '-isysroot': - sdk = cflags[i+1] +def get_sdk(): + env_cflags = os.environ.get('CFLAGS', '') + config_cflags = get_config_var('CFLAGS') + sdk = None + for cflags_str in [env_cflags, config_cflags]: + cflags = shlex.split(cflags_str) + for i, val in enumerate(cflags): + if val == '-isysroot': + sdk = cflags[i+1] + break + elif val.find('-isysroot') == 0: + sdk = val[len('-isysroot'):] + break + if sdk: break - else: + + return sdk + +def get_sdk_level(): + sdk = get_sdk() + + if not sdk: return None if sdk == '/': @@ -223,7 +237,10 @@ sdk = os.path.basename(sdk) assert sdk.startswith('MacOSX') assert sdk.endswith('.sdk') - return sdk[6:-4] + if sdk == 'MacOSX.sdk': + return get_os_level() + else: + return sdk[6:-4] class pyobjc_install_lib (install_lib.install_lib): def get_exclusions(self): @@ -396,10 +413,10 @@ if 'clang' in get_config_var('CC'): cflags.append('-Wno-deprecated-declarations') - CFLAGS = get_config_var('CFLAGS') - if '-isysroot' not in CFLAGS: # and os.path.exists('/usr/include/stdio.h'): - # We're likely on a system with de Xcode Command Line Tools. - # Explicitly use the most recent problems to avoid compile problems. + sdk = get_sdk() + if not sdk: # and os.path.exists('/usr/include/stdio.h'): + # We're likely on a system with the Xcode Command Line Tools. + # Explicitly use the most recent SDK to avoid compile problems. data = os.popen('/usr/bin/xcrun -sdk macosx --show-sdk-path').read() data = data.strip() if data: