Moved macOS SDK logic into a separate method

This commit is contained in:
Andrew Murray 2021-11-11 20:51:13 +11:00
parent 3b701dcc16
commit 2ce7dd5ef6

View File

@ -404,6 +404,27 @@ class pil_build_ext(build_ext):
self.extensions.remove(extension) self.extensions.remove(extension)
break break
def get_macos_sdk_path(self):
try:
sdk_path = (
subprocess.check_output(["xcrun", "--show-sdk-path"])
.strip()
.decode("latin1")
)
except Exception:
sdk_path = None
if (
not sdk_path
or sdk_path == "/Applications/Xcode.app/Contents/Developer"
"/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
):
commandlinetools_sdk_path = (
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"
)
if os.path.exists(commandlinetools_sdk_path):
sdk_path = commandlinetools_sdk_path
return sdk_path
def build_extensions(self): def build_extensions(self):
library_dirs = [] library_dirs = []
@ -531,25 +552,7 @@ class pil_build_ext(build_ext):
_add_directory(library_dirs, "/usr/X11/lib") _add_directory(library_dirs, "/usr/X11/lib")
_add_directory(include_dirs, "/usr/X11/include") _add_directory(include_dirs, "/usr/X11/include")
# SDK install path sdk_path = self.get_macos_sdk_path()
try:
sdk_path = (
subprocess.check_output(["xcrun", "--show-sdk-path"])
.strip()
.decode("latin1")
)
except Exception:
sdk_path = None
if (
not sdk_path
or sdk_path == "/Applications/Xcode.app/Contents/Developer"
"/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
):
commandlinetools_sdk_path = (
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"
)
if os.path.exists(commandlinetools_sdk_path):
sdk_path = commandlinetools_sdk_path
if sdk_path: if sdk_path:
_add_directory(library_dirs, os.path.join(sdk_path, "usr", "lib")) _add_directory(library_dirs, os.path.join(sdk_path, "usr", "lib"))
_add_directory(include_dirs, os.path.join(sdk_path, "usr", "include")) _add_directory(include_dirs, os.path.join(sdk_path, "usr", "include"))