OLD | NEW |
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 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 | 58 |
59 gn_args["dcheck_always_on"] = config.dcheck_always_on | 59 gn_args["dcheck_always_on"] = config.dcheck_always_on |
60 | 60 |
61 gn_args["mojo_use_nacl"] = config.values.get("use_nacl", False) | 61 gn_args["mojo_use_nacl"] = config.values.get("use_nacl", False) |
62 | 62 |
63 gn_args["mojo_use_go"] = config.values.get("mojo_use_go", False) | 63 gn_args["mojo_use_go"] = config.values.get("mojo_use_go", False) |
64 if gn_args["mojo_use_go"]: | 64 if gn_args["mojo_use_go"]: |
65 gn_args["go_build_tool"] = config.values.get("go_build_tool") | 65 gn_args["go_build_tool"] = config.values.get("go_build_tool") |
66 | 66 |
67 if config.target_os == Config.OS_ANDROID: | 67 if config.target_os == Config.OS_ANDROID: |
68 gn_args["os"] = "android" | 68 gn_args["target_os"] = "android" |
69 elif config.target_os == Config.OS_CHROMEOS: | 69 elif config.target_os == Config.OS_CHROMEOS: |
70 gn_args["os"] = "chromeos" | 70 gn_args["target_os"] = "chromeos" |
71 gn_args["use_glib"] = False | 71 gn_args["use_glib"] = False |
72 gn_args["use_system_harfbuzz"] = False | 72 gn_args["use_system_harfbuzz"] = False |
73 elif config.target_os == Config.OS_LINUX: | 73 elif config.target_os == Config.OS_LINUX: |
74 gn_args["use_aura"] = False | 74 gn_args["use_aura"] = False |
75 gn_args["use_glib"] = False | 75 gn_args["use_glib"] = False |
76 gn_args["use_system_harfbuzz"] = False | 76 gn_args["use_system_harfbuzz"] = False |
77 | 77 |
78 gn_args["target_cpu"] = config.target_cpu | 78 gn_args["target_cpu"] = config.target_cpu |
79 | 79 |
80 extra_args = config.values.get("gn_args") | 80 extra_args = config.values.get("gn_args") |
(...skipping 26 matching lines...) Expand all Loading... |
107 config_args["sanitizer"] = ( | 107 config_args["sanitizer"] = ( |
108 Config.SANITIZER_ASAN if args.get("is_asan") else None) | 108 Config.SANITIZER_ASAN if args.get("is_asan") else None) |
109 config_args["is_clang"] = args.get("is_clang", False) | 109 config_args["is_clang"] = args.get("is_clang", False) |
110 config_args["use_goma"] = args.get("use_goma", False) | 110 config_args["use_goma"] = args.get("use_goma", False) |
111 if config_args["use_goma"]: | 111 if config_args["use_goma"]: |
112 config_args["goma_dir"] = args.get("goma_dir") | 112 config_args["goma_dir"] = args.get("goma_dir") |
113 config_args["use_nacl"] = args.get("mojo_use_nacl", False) | 113 config_args["use_nacl"] = args.get("mojo_use_nacl", False) |
114 config_args["mojo_use_go"] = args.get("mojo_use_go", False) | 114 config_args["mojo_use_go"] = args.get("mojo_use_go", False) |
115 if config_args["mojo_use_go"]: | 115 if config_args["mojo_use_go"]: |
116 config_args["go_build_tool"] = args.get("go_build_tool") | 116 config_args["go_build_tool"] = args.get("go_build_tool") |
117 config_args["target_os"] = args.get("os") | 117 config_args["target_os"] = args.get("target_os") |
118 config_args["target_cpu"] = args.get("target_cpu") | 118 config_args["target_cpu"] = args.get("target_cpu") |
119 config_args["dcheck_always_on"] = args.get("dcheck_always_on") | 119 config_args["dcheck_always_on"] = args.get("dcheck_always_on") |
120 return Config(**config_args) | 120 return Config(**config_args) |
121 | 121 |
122 | 122 |
123 def ParseGNConfig(build_dir): | 123 def ParseGNConfig(build_dir): |
124 """ | 124 """ |
125 Parse the gn config file present in |build_dir|. This function returns a | 125 Parse the gn config file present in |build_dir|. This function returns a |
126 dictionary with boolean values as boolean. | 126 dictionary with boolean values as boolean. |
127 """ | 127 """ |
128 TRANSLATIONS = { | 128 TRANSLATIONS = { |
129 "true": "True", | 129 "true": "True", |
130 "false": "False", | 130 "false": "False", |
131 } | 131 } |
132 gn_file = os.path.join(build_dir, "args.gn") | 132 gn_file = os.path.join(build_dir, "args.gn") |
133 values = {} | 133 values = {} |
134 with open(gn_file, "r") as f: | 134 with open(gn_file, "r") as f: |
135 for line in f.readlines(): | 135 for line in f.readlines(): |
136 line = re.sub("\s*#.*", "", line) | 136 line = re.sub("\s*#.*", "", line) |
137 result = re.match("^\s*(\w+)\s*=\s*(.*)\s*$", line) | 137 result = re.match("^\s*(\w+)\s*=\s*(.*)\s*$", line) |
138 if result: | 138 if result: |
139 key = result.group(1) | 139 key = result.group(1) |
140 value = result.group(2) | 140 value = result.group(2) |
141 values[key] = ast.literal_eval(TRANSLATIONS.get(value, value)) | 141 values[key] = ast.literal_eval(TRANSLATIONS.get(value, value)) |
142 return values | 142 return values |
OLD | NEW |