diff options
author | der richter <der.richter@gmx.de> | 2019-05-05 17:07:52 +0200 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2019-07-21 18:13:07 +0300 |
commit | 850b3037323ad68012c1d0b59ec00f56a9d8c09b (patch) | |
tree | 78957de34cf367db94e3c8203f7f04615b2d0bdb /waftools | |
parent | 9a2c760614e91916fd97758f33291151ebac3861 (diff) | |
download | mpv-850b3037323ad68012c1d0b59ec00f56a9d8c09b.tar.bz2 mpv-850b3037323ad68012c1d0b59ec00f56a9d8c09b.tar.xz |
build: add check for macOS SDK version
this provides an easy way to check for a specific macOS SDK version and
with that the availability of features.
Diffstat (limited to 'waftools')
-rw-r--r-- | waftools/checks/generic.py | 13 | ||||
-rw-r--r-- | waftools/detections/compiler_swift.py | 10 |
2 files changed, 22 insertions, 1 deletions
diff --git a/waftools/checks/generic.py b/waftools/checks/generic.py index 093c600f34..b83774d9b9 100644 --- a/waftools/checks/generic.py +++ b/waftools/checks/generic.py @@ -1,5 +1,6 @@ import os import inflector +from distutils.version import StrictVersion from waflib.ConfigSet import ConfigSet from waflib import Utils @@ -8,7 +9,7 @@ __all__ = [ "check_pkg_config_cflags", "check_cc", "check_statement", "check_libs", "check_headers", "compose_checks", "check_true", "any_version", "load_fragment", "check_stub", "check_ctx_vars", "check_program", - "check_pkg_config_datadir"] + "check_pkg_config_datadir", "check_macos_sdk"] any_version = None @@ -186,3 +187,13 @@ def load_fragment(fragment): fragment_code = fp.read() fp.close() return fragment_code + +def check_macos_sdk(version): + def fn(ctx, dependency_identifier): + if ctx.env.MACOS_SDK_VERSION: + if StrictVersion(ctx.env.MACOS_SDK_VERSION) >= StrictVersion(version): + ctx.define(inflector.define_key(dependency_identifier), 1) + return True + return False + + return fn diff --git a/waftools/detections/compiler_swift.py b/waftools/detections/compiler_swift.py index 4ff6d20119..d867a440d4 100644 --- a/waftools/detections/compiler_swift.py +++ b/waftools/detections/compiler_swift.py @@ -1,4 +1,5 @@ import re +import string import os.path from waflib import Utils from distutils.version import StrictVersion @@ -116,9 +117,18 @@ def __find_swift_library(ctx): def __find_macos_sdk(ctx): ctx.start_msg('Checking for macOS SDK') sdk = __run(['xcrun', '--sdk', 'macosx', '--show-sdk-path']) + sdk_build_version = __run(['xcrun', '--sdk', 'macosx', '--show-sdk-build-version' ]) + if sdk: ctx.end_msg(sdk) ctx.env.MACOS_SDK = sdk + + if sdk_build_version: + verRe = re.compile("(\d+)(\D+)(\d+)") + version_parts = verRe.search(sdk_build_version) + major = int(version_parts.group(1))-4 + minor = string.ascii_lowercase.index(version_parts.group(2).lower()) + ctx.env.MACOS_SDK_VERSION = '10.' + str(major) + '.' + str(minor) else: ctx.end_msg(False) |