| Index: mojo/tools/mopy/gn.py
|
| diff --git a/mojo/tools/mopy/gn.py b/mojo/tools/mopy/gn.py
|
| deleted file mode 100644
|
| index c51c92fec9f4315ae973b2e858ad36362829f533..0000000000000000000000000000000000000000
|
| --- a/mojo/tools/mopy/gn.py
|
| +++ /dev/null
|
| @@ -1,123 +0,0 @@
|
| -# Copyright 2015 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.
|
| -
|
| -"""
|
| -GN-related configuration functions, e.g., to produce a Config object from a GN
|
| -args.gn file).
|
| -"""
|
| -
|
| -
|
| -import ast
|
| -import os.path
|
| -import re
|
| -
|
| -from .config import Config
|
| -
|
| -
|
| -def BuildDirectoryForConfig(config, src_root):
|
| - """
|
| - Returns the build directory for the given configuration.
|
| - """
|
| - subdir = ""
|
| - if config.target_os == Config.OS_ANDROID:
|
| - subdir += "android_"
|
| - elif config.target_os == Config.OS_CHROMEOS:
|
| - subdir += "chromeos_"
|
| - subdir += "Debug" if config.is_debug else "Release"
|
| - if config.sanitizer == Config.SANITIZER_ASAN:
|
| - subdir += "_asan"
|
| - return os.path.join(src_root, "out", subdir)
|
| -
|
| -
|
| -def GNArgsForConfig(config):
|
| - """
|
| - Return the arguments for gn for the given configuration. This function returns
|
| - a dictionary with boolean values as boolean.
|
| - """
|
| - gn_args = {}
|
| -
|
| - gn_args["is_debug"] = bool(config.is_debug)
|
| - gn_args["is_asan"] = config.sanitizer == Config.SANITIZER_ASAN
|
| -
|
| - if config.is_clang is not None:
|
| - gn_args["is_clang"] = bool(config.is_clang)
|
| - else:
|
| - gn_args["is_clang"] = config.target_os not in (Config.OS_ANDROID,
|
| - Config.OS_WINDOWS)
|
| -
|
| - if config.values.get("use_goma"):
|
| - gn_args["use_goma"] = True
|
| - gn_args["goma_dir"] = config.values["goma_dir"]
|
| - else:
|
| - gn_args["use_goma"] = False
|
| -
|
| - gn_args["mojo_use_nacl"] = config.values.get("use_nacl", False)
|
| -
|
| - if config.target_os == Config.OS_ANDROID:
|
| - gn_args["os"] = "android"
|
| - elif config.target_os == Config.OS_CHROMEOS:
|
| - gn_args["os"] = "chromeos"
|
| - gn_args["use_glib"] = False
|
| - gn_args["use_system_harfbuzz"] = False
|
| - elif config.target_os == Config.OS_LINUX:
|
| - gn_args["is_desktop_linux"] = False
|
| - gn_args["use_aura"] = False
|
| - gn_args["use_glib"] = False
|
| - gn_args["use_system_harfbuzz"] = False
|
| -
|
| - gn_args["cpu_arch"] = config.target_arch
|
| -
|
| - return gn_args
|
| -
|
| -
|
| -def CommandLineForGNArgs(gn_args):
|
| - """
|
| - Returns the list of gn arguments to use with the gn command line.
|
| - """
|
| - def _ToCommandLine(key, value):
|
| - if type(value) is bool:
|
| - return "%s=%s" % (key, "true" if value else "false")
|
| - return "%s=\"%s\"" % (key, value)
|
| - return [_ToCommandLine(x, y) for x, y in gn_args.iteritems()]
|
| -
|
| -
|
| -def ConfigForGNArgs(args):
|
| - """
|
| - Return the Config object for the given gn arguments. This function takes a
|
| - dictionary with boolean values as boolean.
|
| - """
|
| - config_args = {}
|
| - config_args["is_debug"] = args.get("is_debug", False)
|
| - config_args["sanitizer"] = (
|
| - Config.SANITIZER_ASAN if args.get("is_asan") else None)
|
| - config_args["is_clang"] = args.get("is_clang", False)
|
| - config_args["use_goma"] = args.get("use_goma", False)
|
| - if config_args["use_goma"]:
|
| - config_args["goma_dir"] = args.get("goma_dir")
|
| - config_args["use_nacl"] = args.get("mojo_use_nacl", False)
|
| - config_args["target_os"] = args.get("os")
|
| - config_args["target_arch"] = args.get("cpu_arch")
|
| - return Config(**config_args)
|
| -
|
| -
|
| -def ParseGNConfig(build_dir):
|
| - """
|
| - Parse the gn config file present in |build_dir|. This function returns a
|
| - dictionary with boolean values as boolean.
|
| - """
|
| - TRANSLATIONS = {
|
| - "true": "True",
|
| - "false": "False",
|
| - }
|
| - gn_file = os.path.join(build_dir, "args.gn")
|
| - values = {}
|
| - with open(gn_file, "r") as f:
|
| - for line in f.readlines():
|
| - line = re.sub("\s*#.*", "", line)
|
| - result = re.match("^\s*(\w+)\s*=\s*(.*)\s*$", line)
|
| - if result:
|
| - key = result.group(1)
|
| - value = result.group(2)
|
| - values[key] = ast.literal_eval(TRANSLATIONS.get(value, value))
|
| - return values
|
|
|