diff --git a/waftools/checks/custom.py b/waftools/checks/custom.py index 698742406f..3af9bdb921 100644 --- a/waftools/checks/custom.py +++ b/waftools/checks/custom.py @@ -92,6 +92,18 @@ def check_wl_protocols(ctx, dependency_identifier): return ret return fn(ctx, dependency_identifier) +def _run(cmd): + from waflib import Utils + try: + cmd = Utils.subprocess.Popen(cmd, + stdout=Utils.subprocess.PIPE, + stderr=Utils.subprocess.PIPE, + shell=True) + output = cmd.stdout.read().strip() + return output + except Exception: + return "" + def check_cocoa(ctx, dependency_identifier): fn = check_cc( fragment = load_fragment('cocoa.m'), @@ -100,7 +112,15 @@ def check_cocoa(ctx, dependency_identifier): includes = ctx.srcnode.abspath(), linkflags = '-fobjc-arc') - return fn(ctx, dependency_identifier) + res = fn(ctx, dependency_identifier) + # on macOS we explicitly need to set the SDK path, otherwise it can lead to + # linking warnings or errors + if res: + ctx.env.append_value('LINKFLAGS', [ + '-isysroot', '%s' % _run('xcrun --sdk macosx --show-sdk-path') + ]) + + return res def check_openal(ctx, dependency_identifier): checks = [