diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /media/webrtc/trunk/build/ios | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'media/webrtc/trunk/build/ios')
-rwxr-xr-x | media/webrtc/trunk/build/ios/clean_env.py | 77 | ||||
-rw-r--r-- | media/webrtc/trunk/build/ios/mac_build.gypi | 79 |
2 files changed, 156 insertions, 0 deletions
diff --git a/media/webrtc/trunk/build/ios/clean_env.py b/media/webrtc/trunk/build/ios/clean_env.py new file mode 100755 index 000000000..548e2b92e --- /dev/null +++ b/media/webrtc/trunk/build/ios/clean_env.py @@ -0,0 +1,77 @@ +#!/usr/bin/python +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os +import sys + +def Main(argv): + """This is like 'env -i', but it uses a whitelist of env variables to allow + through to the command being run. It attempts to strip off Xcode-added + values from PATH. + """ + # Note: An attempt was made to do something like: env -i bash -lc '[command]' + # but that fails to set the things set by login (USER, etc.), so instead + # the only approach that seems to work is to have a whitelist. + env_key_whitelist = ( + 'HOME', + 'LOGNAME', + # 'PATH' added below (but filtered). + 'PWD', + 'SHELL', + 'TEMP', + 'TMPDIR', + 'USER' + ) + + # Need something to run. + # TODO(lliabraa): Make this output a usage string and exit (here and below). + assert(len(argv) > 0) + + add_to_path = []; + first_entry = argv[0]; + if first_entry.startswith('ADD_TO_PATH='): + argv = argv[1:]; + add_to_path = first_entry.replace('ADD_TO_PATH=', '', 1).split(':') + + # Still need something to run. + assert(len(argv) > 0) + + clean_env = {} + + # Pull over the whitelisted keys. + for key in env_key_whitelist: + val = os.environ.get(key, None) + if not val is None: + clean_env[key] = val + + # Collect the developer dir as set via Xcode, defaulting it. + dev_prefix = os.environ.get('DEVELOPER_DIR', '/Developer/') + if dev_prefix[-1:] != '/': + dev_prefix += '/' + + # Now pull in PATH, but remove anything Xcode might have added. + initial_path = os.environ.get('PATH', '') + filtered_chunks = \ + [x for x in initial_path.split(':') if not x.startswith(dev_prefix)] + if filtered_chunks: + clean_env['PATH'] = ':'.join(add_to_path + filtered_chunks) + + # Add any KEY=VALUE args before the command to the cleaned environment. + args = argv[:] + while '=' in args[0]: + (key, val) = args[0].split('=', 1) + clean_env[key] = val + args = args[1:] + + # Still need something to run. + assert(len(args) > 0) + + # Off it goes... + os.execvpe(args[0], args, clean_env) + # Should never get here, so return a distinctive, non-zero status code. + return 66 + +if __name__ == '__main__': + sys.exit(Main(sys.argv[1:])) diff --git a/media/webrtc/trunk/build/ios/mac_build.gypi b/media/webrtc/trunk/build/ios/mac_build.gypi new file mode 100644 index 000000000..9a739182b --- /dev/null +++ b/media/webrtc/trunk/build/ios/mac_build.gypi @@ -0,0 +1,79 @@ +# Copyright (c) 2012 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Xcode throws an error if an iOS target depends on a Mac OS X target. So +# any place a utility program needs to be build and run, an action is +# used to run ninja as script to work around this. +# Example: +# { +# 'target_name': 'foo', +# 'type': 'none', +# 'variables': { +# # The name of a directory used for ninja. This cannot be shared with +# # another mac build. +# 'ninja_output_dir': 'ninja-foo', +# # The list of all the gyp files that contain the targets to run. +# 're_run_targets': [ +# 'foo.gyp', +# ], +# }, +# 'includes': ['path_to/mac_build.gypi'], +# 'actions': [ +# { +# 'action_name': 'compile foo', +# 'inputs': [], +# 'outputs': [], +# 'action': [ +# '<@(ninja_cmd)', +# # All the targets to build. +# 'foo1', +# 'foo2', +# ], +# }, +# ], +# } +{ + 'variables': { + # Convenience variable pointing to the ninja product directory. + 'ninja_product_dir': + '<(DEPTH)/xcodebuild/<(ninja_output_dir)/<(CONFIGURATION_NAME)', + + # Common ninja command line flags. + 'ninja_cmd': [ + # Bounce through clean_env to clean up the environment so things + # set by the iOS build don't pollute the Mac build. + '<(DEPTH)/build/ios/clean_env.py', + # ninja must be found in the PATH. + 'ADD_TO_PATH=<!(echo $PATH)', + 'ninja', + '-C', + '<(ninja_product_dir)', + ], + + # Common syntax to rerun gyp to generate the Mac projects. + 're_run_gyp': [ + 'build/gyp_chromium', + # Don't use anything set for the iOS side of things. + '--ignore-environment', + # Generate for ninja + '--format=ninja', + # Generate files into xcodebuild/ninja + '-Goutput_dir=xcodebuild/<(ninja_output_dir)', + # nacl isn't in the iOS checkout, make sure it's turned off + '-Ddisable_nacl=1', + # Add a variable to handle specific cases for mac_build. + '-Dios_mac_build=1', + # Pass through the Mac SDK version. + '-Dmac_sdk=<(mac_sdk)', + ], + + # Rerun gyp for each of the projects needed. This is what actually + # generates the projects on disk. + 're_run_gyp_execution': + '<!(cd <(DEPTH) && <@(re_run_gyp) <@(re_run_targets))', + }, + # Since these are used to generate things needed by other targets, make + # them hard dependencies so they are always built first. + 'hard_dependency': 1, +} |