Port get_gn_arg_value() to native Python code so that it works on Windows.
This allows Goma to work on Win builder.
R=sky@chromium.org
Review URL: https://codereview.chromium.org/698853003
diff --git a/mojo/tools/mojob.py b/mojo/tools/mojob.py
index d0505b8..8caa609 100755
--- a/mojo/tools/mojob.py
+++ b/mojo/tools/mojob.py
@@ -8,6 +8,7 @@
import argparse
import os
import platform
+import re
import subprocess
import sys
@@ -39,7 +40,7 @@
gn_args.append('is_clang=' + ('true' if args.clang else 'false'))
if platform.system() == 'Windows':
- # Force x64 for now to avoid .asm build problems
+ # Force x64 for now to avoid .asm build problems
gn_args.append('force_win64=true')
goma_dir = os.environ.get('GOMA_DIR')
@@ -71,11 +72,13 @@
def get_gn_arg_value(out_dir, arg):
- if platform.system() == 'Windows':
- return None # TODO(jam): implement
- command = (r'''grep -m 1 "^[[:space:]]*\<%s\>" "%s/args.gn" |
- sed -n 's/.* = "\?\([^"]*\)"\?$/\1/p' ''') % (arg, out_dir)
- return subprocess.check_output(command, shell=True).strip()
+ key_value_regex = re.compile(r'^%s = (.+)$' % arg)
+ with open(os.path.join(out_dir, "args.gn"), "r") as args_file:
+ for line in args_file.readlines():
+ m = key_value_regex.search(line)
+ if m:
+ return m.group(1).strip('"')
+ return ''
def build(args):