Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Side by Side Diff: mojo/tools/mopy/gn.py

Issue 1348493002: Add fnl build target (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/tools/mopy/config.py ('k') | services/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """ 5 """
6 GN-related configuration functions, e.g., to produce a Config object from a GN 6 GN-related configuration functions, e.g., to produce a Config object from a GN
7 args.gn file). 7 args.gn file).
8 """ 8 """
9 9
10 10
11 import ast 11 import ast
12 import os.path 12 import os.path
13 import re 13 import re
14 14
15 from .config import Config 15 from .config import Config
16 16
17 17
18 def BuildDirectoryForConfig(config, src_root): 18 def BuildDirectoryForConfig(config, src_root):
19 """ 19 """
20 Returns the build directory for the given configuration. 20 Returns the build directory for the given configuration.
21 """ 21 """
22 subdir = "" 22 subdir = ""
23 if config.target_os == Config.OS_ANDROID: 23 if config.target_os == Config.OS_ANDROID:
24 subdir += "android_" 24 subdir += "android_"
25 if config.target_cpu != Config.ARCH_ARM: 25 if config.target_cpu != Config.ARCH_ARM:
26 subdir += config.target_cpu + "_" 26 subdir += config.target_cpu + "_"
27 elif config.target_os == Config.OS_FNL:
28 subdir += "fnl_"
27 elif config.target_os == Config.OS_IOS: 29 elif config.target_os == Config.OS_IOS:
28 subdir += "ios_" 30 subdir += "ios_"
29 if config.is_simulator: 31 if config.is_simulator:
30 subdir += "sim_" 32 subdir += "sim_"
31 if config.is_official_build: 33 if config.is_official_build:
32 subdir += "Official" 34 subdir += "Official"
33 elif config.is_debug: 35 elif config.is_debug:
34 subdir += "Debug" 36 subdir += "Debug"
35 else: 37 else:
36 subdir += "Release" 38 subdir += "Release"
(...skipping 12 matching lines...) Expand all
49 gn_args = {} 51 gn_args = {}
50 52
51 gn_args["is_debug"] = bool(config.is_debug) 53 gn_args["is_debug"] = bool(config.is_debug)
52 gn_args["is_official_build"] = bool(config.is_official_build) 54 gn_args["is_official_build"] = bool(config.is_official_build)
53 gn_args["is_asan"] = config.sanitizer == Config.SANITIZER_ASAN 55 gn_args["is_asan"] = config.sanitizer == Config.SANITIZER_ASAN
54 56
55 if config.is_clang is not None: 57 if config.is_clang is not None:
56 gn_args["is_clang"] = bool(config.is_clang) 58 gn_args["is_clang"] = bool(config.is_clang)
57 else: 59 else:
58 gn_args["is_clang"] = config.target_os not in (Config.OS_ANDROID, 60 gn_args["is_clang"] = config.target_os not in (Config.OS_ANDROID,
61 Config.OS_FNL,
59 Config.OS_WINDOWS) 62 Config.OS_WINDOWS)
60 63
61 if config.values.get("use_goma"): 64 if config.values.get("use_goma"):
62 gn_args["use_goma"] = True 65 gn_args["use_goma"] = True
63 gn_args["goma_dir"] = config.values["goma_dir"] 66 gn_args["goma_dir"] = config.values["goma_dir"]
64 else: 67 else:
65 gn_args["use_goma"] = False 68 gn_args["use_goma"] = False
66 69
67 gn_args["dcheck_always_on"] = config.dcheck_always_on 70 gn_args["dcheck_always_on"] = config.dcheck_always_on
68 71
69 if config.target_os == Config.OS_ANDROID: 72 if config.target_os == Config.OS_ANDROID:
70 gn_args["target_os"] = "android" 73 gn_args["target_os"] = "android"
74 elif config.target_os == Config.OS_FNL:
75 gn_args["target_os"] = "fnl"
76 gn_args["use_aura"] = False
77 gn_args["use_glib"] = False
78 gn_args["use_ozone"] = True
79 gn_args["use_system_harfbuzz"] = False
80 gn_args["target_sysroot"] = config.values.get("target_sysroot", "")
81 gn_args["toolchain_prefix"] = config.values.get("toolchain_prefix", "")
71 elif config.target_os == Config.OS_IOS: 82 elif config.target_os == Config.OS_IOS:
72 gn_args["target_os"] = "ios" 83 gn_args["target_os"] = "ios"
73 gn_args["ios_deployment_target"] = "7.0" 84 gn_args["ios_deployment_target"] = "7.0"
74 gn_args["clang_use_chrome_plugins"] = False 85 gn_args["clang_use_chrome_plugins"] = False
75 if config.is_simulator: 86 if config.is_simulator:
76 gn_args["use_libjpeg_turbo"] = False 87 gn_args["use_libjpeg_turbo"] = False
77 gn_args["use_ios_simulator"] = config.is_simulator 88 gn_args["use_ios_simulator"] = config.is_simulator
78 elif config.target_os == Config.OS_LINUX: 89 elif config.target_os == Config.OS_LINUX:
79 gn_args["use_aura"] = False 90 gn_args["use_aura"] = False
80 gn_args["use_glib"] = False 91 gn_args["use_glib"] = False
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if config_args["use_goma"]: 136 if config_args["use_goma"]:
126 config_args["goma_dir"] = args.get("goma_dir") 137 config_args["goma_dir"] = args.get("goma_dir")
127 config_args["use_nacl"] = args.get("mojo_use_nacl", False) 138 config_args["use_nacl"] = args.get("mojo_use_nacl", False)
128 config_args["mojo_use_go"] = args.get("mojo_use_go", False) 139 config_args["mojo_use_go"] = args.get("mojo_use_go", False)
129 if config_args["mojo_use_go"]: 140 if config_args["mojo_use_go"]:
130 config_args["go_build_tool"] = args.get("go_build_tool") 141 config_args["go_build_tool"] = args.get("go_build_tool")
131 config_args["target_os"] = args.get("target_os") 142 config_args["target_os"] = args.get("target_os")
132 config_args["target_cpu"] = args.get("target_cpu") 143 config_args["target_cpu"] = args.get("target_cpu")
133 config_args["dcheck_always_on"] = args.get("dcheck_always_on") 144 config_args["dcheck_always_on"] = args.get("dcheck_always_on")
134 config_args["is_simulator"] = args.get("use_ios_simulator", False) 145 config_args["is_simulator"] = args.get("use_ios_simulator", False)
146 if "target_sysroot" in args:
147 config_args["target_sysroot"] = args.get("target_sysroot")
148 if "toolchain_prefix" in args:
149 config_args["toolchain_prefix"] = args.get("toolchain_prefix")
135 return Config(**config_args) 150 return Config(**config_args)
136 151
137 152
138 def ParseGNConfig(build_dir): 153 def ParseGNConfig(build_dir):
139 """ 154 """
140 Parse the gn config file present in |build_dir|. This function returns a 155 Parse the gn config file present in |build_dir|. This function returns a
141 dictionary with boolean values as boolean. 156 dictionary with boolean values as boolean.
142 """ 157 """
143 TRANSLATIONS = { 158 TRANSLATIONS = {
144 "true": "True", 159 "true": "True",
145 "false": "False", 160 "false": "False",
146 } 161 }
147 gn_file = os.path.join(build_dir, "args.gn") 162 gn_file = os.path.join(build_dir, "args.gn")
148 values = {} 163 values = {}
149 with open(gn_file, "r") as f: 164 with open(gn_file, "r") as f:
150 for line in f.readlines(): 165 for line in f.readlines():
151 line = re.sub("\s*#.*", "", line) 166 line = re.sub("\s*#.*", "", line)
152 result = re.match("^\s*(\w+)\s*=\s*(.*)\s*$", line) 167 result = re.match("^\s*(\w+)\s*=\s*(.*)\s*$", line)
153 if result: 168 if result:
154 key = result.group(1) 169 key = result.group(1)
155 value = result.group(2) 170 value = result.group(2)
156 values[key] = ast.literal_eval(TRANSLATIONS.get(value, value)) 171 values[key] = ast.literal_eval(TRANSLATIONS.get(value, value))
157 return values 172 return values
OLDNEW
« no previous file with comments | « mojo/tools/mopy/config.py ('k') | services/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698