123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env python3
- # Copyright 2016 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.
- """
- Prints "1" if Chrome targets should be built with hermetic Xcode.
- Prints "2" if Chrome targets should be built with hermetic Xcode, but the OS
- version does not meet the minimum requirements of the hermetic version of Xcode.
- Prints "3" if FORCE_MAC_TOOLCHAIN is set for an iOS target_os
- Otherwise prints "0".
- Usage:
- python should_use_hermetic_xcode.py <target_os>
- """
- from __future__ import print_function
- import argparse
- import os
- import sys
- _THIS_DIR_PATH = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
- _BUILD_PATH = os.path.join(_THIS_DIR_PATH, os.pardir)
- sys.path.insert(0, _BUILD_PATH)
- import mac_toolchain
- def _IsCorpMachine():
- if sys.platform == 'darwin':
- return os.path.isdir('/Library/GoogleCorpSupport/')
- if sys.platform.startswith('linux'):
- import subprocess
- try:
- return subprocess.check_output(['lsb_release',
- '-sc']).rstrip() == b'rodete'
- except:
- return False
- return False
- def main():
- parser = argparse.ArgumentParser(description='Download hermetic Xcode.')
- parser.add_argument('platform')
- args = parser.parse_args()
- force_toolchain = os.environ.get('FORCE_MAC_TOOLCHAIN')
- if force_toolchain and args.platform == 'ios':
- return "3"
- allow_corp = args.platform == 'mac' and _IsCorpMachine()
- if force_toolchain or allow_corp:
- if not mac_toolchain.PlatformMeetsHermeticXcodeRequirements():
- return "2"
- return "1"
- else:
- return "0"
- if __name__ == '__main__':
- print(main())
- sys.exit(0)
|