66 строки
1.8 KiB
Python
Executable File
66 строки
1.8 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# 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() == 'rodete'
|
|
except:
|
|
return False
|
|
return False
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Download hermetic Xcode.')
|
|
parser.add_argument('platform')
|
|
parser.add_argument('--xcode-version',
|
|
choices=('default', 'xcode_12_beta'),
|
|
default='default')
|
|
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(
|
|
args.xcode_version):
|
|
return "2"
|
|
return "1"
|
|
else:
|
|
return "0"
|
|
|
|
|
|
if __name__ == '__main__':
|
|
print(main())
|
|
sys.exit(0)
|