| Index: tools/gn.py
|
| diff --git a/tools/gn.py b/tools/gn.py
|
| index 24e9380d6ddefb5e953ba022e5b748b5ea1ee03d..1e5120b927b06d68eece76e4d65f49bb156e50fa 100755
|
| --- a/tools/gn.py
|
| +++ b/tools/gn.py
|
| @@ -16,6 +16,41 @@ HOST_ARCH = utils.GuessArchitecture()
|
| SCRIPT_DIR = os.path.dirname(sys.argv[0])
|
| DART_ROOT = os.path.realpath(os.path.join(SCRIPT_DIR, '..'))
|
|
|
| +# Environment variables for default settings.
|
| +DART_USE_ASAN = "DART_USE_ASAN" # Use instead of --asan
|
| +DART_USE_MSAN = "DART_USE_MSAN" # Use instead of --msan
|
| +DART_USE_TSAN = "DART_USE_TSAN" # Use instead of --tsan
|
| +DART_USE_WHEEZY = "DART_USE_WHEEZY" # Use instread of --wheezy
|
| +DART_USE_TOOLCHAIN = "DART_USE_TOOLCHAIN" # Use instread of --toolchain-prefix
|
| +DART_USE_SYSROOT = "DART_USE_SYSROOT" # Use instead of --target-sysroot
|
| +
|
| +def use_asan():
|
| + return DART_USE_ASAN in os.environ
|
| +
|
| +
|
| +def use_msan():
|
| + return DART_USE_MSAN in os.environ
|
| +
|
| +
|
| +def use_tsan():
|
| + return DART_USE_TSAN in os.environ
|
| +
|
| +
|
| +def use_wheezy():
|
| + return DART_USE_WHEEZY in os.environ
|
| +
|
| +
|
| +def toolchain_prefix(args):
|
| + if args.toolchain_prefix:
|
| + return args.toolchain_prefix
|
| + return os.environ.get(DART_USE_TOOLCHAIN)
|
| +
|
| +
|
| +def target_sysroot(args):
|
| + if args.target_sysroot:
|
| + return args.target_sysroot
|
| + return os.environ.get(DART_USE_SYSROOT)
|
| +
|
|
|
| def get_out_dir(mode, arch, target_os):
|
| return utils.GetBuildRoot(HOST_OS, mode, arch, target_os)
|
| @@ -64,6 +99,16 @@ def host_os_for_gn(host_os):
|
| return host_os
|
|
|
|
|
| +# Where string_map is formatted as X1=Y1,X2=Y2 etc.
|
| +# If key is X1, returns Y1.
|
| +def parse_string_map(key, string_map):
|
| + for m in string_map.split(','):
|
| + l = m.split('=')
|
| + if l[0] == key:
|
| + return l[1]
|
| + return None
|
| +
|
| +
|
| def to_gn_args(args, mode, arch, target_os):
|
| gn_args = {}
|
|
|
| @@ -137,11 +182,13 @@ def to_gn_args(args, mode, arch, target_os):
|
| if gn_args['target_os'] == 'linux' and args.wheezy:
|
| gn_args['dart_use_wheezy_sysroot'] = True
|
| else:
|
| - if args.target_sysroot:
|
| - gn_args['target_sysroot'] = args.target_sysroot
|
| + sysroot = target_sysroot(args)
|
| + if sysroot:
|
| + gn_args['target_sysroot'] = parse_string_map(arch, sysroot)
|
|
|
| - if args.toolchain_prefix:
|
| - gn_args['toolchain_prefix'] = args.toolchain_prefix
|
| + toolchain = toolchain_prefix(args)
|
| + if toolchain:
|
| + gn_args['toolchain_prefix'] = parse_string_map(arch, toolchain)
|
|
|
| goma_dir = os.environ.get('GOMA_DIR')
|
| goma_home_dir = os.path.join(os.getenv('HOME', ''), 'goma')
|
| @@ -219,25 +266,6 @@ def ide_switch(host_os):
|
| return '--ide=json'
|
|
|
|
|
| -# Environment variables for default settings.
|
| -DART_USE_ASAN = "DART_USE_ASAN"
|
| -DART_USE_MSAN = "DART_USE_MSAN"
|
| -DART_USE_TSAN = "DART_USE_TSAN"
|
| -DART_USE_WHEEZY = "DART_USE_WHEEZY"
|
| -
|
| -def use_asan():
|
| - return DART_USE_ASAN in os.environ
|
| -
|
| -def use_msan():
|
| - return DART_USE_MSAN in os.environ
|
| -
|
| -def use_tsan():
|
| - return DART_USE_TSAN in os.environ
|
| -
|
| -def use_wheezy():
|
| - return DART_USE_WHEEZY in os.environ
|
| -
|
| -
|
| def parse_args(args):
|
| args = args[1:]
|
| parser = argparse.ArgumentParser(
|
| @@ -304,10 +332,10 @@ def parse_args(args):
|
| action='store_false')
|
| other_group.add_argument('--target-sysroot', '-s',
|
| type=str,
|
| - help='Path to the toolchain sysroot')
|
| + help='Comma-separated list of arch=/path/to/sysroot mappings')
|
| other_group.add_argument('--toolchain-prefix', '-t',
|
| type=str,
|
| - help='Path to the toolchain prefix')
|
| + help='Comma-separated list of arch=/path/to/toolchain-prefix mappings')
|
| other_group.add_argument('--tsan',
|
| help='Build with TSAN',
|
| default=use_tsan(),
|
|
|