media/webrtc/trunk/build/download_nacl_toolchains.py

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rwxr-xr-x

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 #!/usr/bin/env python
     2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
     3 # Use of this source code is governed by a BSD-style license that can be
     4 # found in the LICENSE file.
     6 """Shim to run nacl toolchain download script only if there is a nacl dir."""
     8 import os
     9 import sys
    12 def Main(args):
    13   # Exit early if disable_nacl=1.
    14   if 'disable_nacl=1' in os.environ.get('GYP_DEFINES', ''):
    15     return 0
    16   script_dir = os.path.dirname(os.path.abspath(__file__))
    17   src_dir = os.path.dirname(script_dir)
    18   nacl_dir = os.path.join(src_dir, 'native_client')
    19   nacl_build_dir = os.path.join(nacl_dir, 'build')
    20   download_script = os.path.join(nacl_build_dir, 'download_toolchains.py')
    21   if not os.path.exists(download_script):
    22     print "Can't find '%s'" % download_script
    23     print 'Presumably you are intentionally building without NativeClient.'
    24     print 'Skipping NativeClient toolchain download.'
    25     sys.exit(0)
    26   sys.path.insert(0, nacl_build_dir)
    27   import download_toolchains
    29   # TODO (robertm): Finish getting PNaCl ready for prime time.
    30   # BUG:
    31   # We remove this --optional-pnacl argument, and instead replace it with
    32   # --no-pnacl for most cases.  However, if the bot name is the pnacl_sdk
    33   # bot then we will go ahead and download it.  This prevents increasing the
    34   # gclient sync time for developers, or standard Chrome bots.
    35   if '--optional-pnacl' in args:
    36     args.remove('--optional-pnacl')
    37     # By default we don't use PNaCl toolchain yet, unless on ARM, where
    38     # there is no other toolchain to build untrusted code at the moment.
    39     # So analyze if we're building for ARM, or on SDK buildbot.
    40     # TODO(olonho): we need to invent more reliable way to get build
    41     # configuration info, to know if we're building for ARM.
    42     use_pnacl = False
    43     if 'target_arch=arm' in os.environ.get('GYP_DEFINES', ''):
    44       use_pnacl = True
    45     buildbot_name = os.environ.get('BUILDBOT_BUILDERNAME', '')
    46     if buildbot_name.find('pnacl') >= 0 and  buildbot_name.find('sdk') >= 0:
    47       use_pnacl = True
    48     if use_pnacl:
    49       print '\n*** DOWNLOADING PNACL TOOLCHAIN ***\n'
    50     else:
    51       args.append('--no-pnacl')
    53   # Append the name of the file to use as a version and hash source.
    54   # NOTE:  While not recommended, it is possible to redirect this file to
    55   # a chrome location to avoid branching NaCl if just a toolchain needs
    56   # to be bumped.
    57   args.append(os.path.join(nacl_dir,'TOOL_REVISIONS'))
    59   download_toolchains.main(args)
    60   return 0
    63 if __name__ == '__main__':
    64   sys.exit(Main(sys.argv[1:]))

mercurial