OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2017 the V8 project authors. All rights reserved. | 2 # Copyright 2017 the V8 project authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 """\ | 5 """\ |
6 Convenience wrapper for compiling V8 with gn/ninja and running tests. | 6 Convenience wrapper for compiling V8 with gn/ninja and running tests. |
7 Sets up build output directories if they don't exist. | 7 Sets up build output directories if they don't exist. |
8 Produces simulator builds for non-Intel target architectures. | 8 Produces simulator builds for non-Intel target architectures. |
9 Uses Goma by default if it is detected (at output directory setup time). | 9 Uses Goma by default if it is detected (at output directory setup time). |
10 Expects to be run from the root of a V8 checkout. | 10 Expects to be run from the root of a V8 checkout. |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 "message": "d8", | 73 "message": "d8", |
74 "mjsunit": "d8", | 74 "mjsunit": "d8", |
75 "mozilla": "d8", | 75 "mozilla": "d8", |
76 "preparser": "d8", | 76 "preparser": "d8", |
77 "test262": "d8", | 77 "test262": "d8", |
78 "unittests": "unittests", | 78 "unittests": "unittests", |
79 "webkit": "d8"} | 79 "webkit": "d8"} |
80 | 80 |
81 OUTDIR = "out" | 81 OUTDIR = "out" |
82 | 82 |
83 IS_GOMA_MACHINE = (os.path.exists(os.path.expanduser("~/goma")) or | 83 def DetectGoma(): |
84 os.environ.get('GOMADIR')) | 84 home_goma = os.path.expanduser("~/goma") |
| 85 if os.path.exists(home_goma): |
| 86 return home_goma |
| 87 if os.environ.get("GOMADIR"): |
| 88 return os.environ.get("GOMADIR") |
| 89 return None |
| 90 |
| 91 GOMADIR = DetectGoma() |
| 92 IS_GOMA_MACHINE = GOMADIR is not None |
85 | 93 |
86 USE_GOMA = "true" if IS_GOMA_MACHINE else "false" | 94 USE_GOMA = "true" if IS_GOMA_MACHINE else "false" |
87 BUILD_OPTS = BUILD_OPTS_GOMA if IS_GOMA_MACHINE else BUILD_OPTS_DEFAULT | 95 BUILD_OPTS = BUILD_OPTS_GOMA if IS_GOMA_MACHINE else BUILD_OPTS_DEFAULT |
88 | 96 |
89 RELEASE_ARGS_TEMPLATE = """\ | 97 RELEASE_ARGS_TEMPLATE = """\ |
90 is_component_build = false | 98 is_component_build = false |
91 is_debug = false | 99 is_debug = false |
92 %s | 100 %s |
93 use_goma = {GOMA} | 101 use_goma = {GOMA} |
94 v8_enable_backtrace = true | 102 v8_enable_backtrace = true |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 self.ParseArg(argstring) | 287 self.ParseArg(argstring) |
280 self.ProcessGlobalActions() | 288 self.ProcessGlobalActions() |
281 for c in self.configs: | 289 for c in self.configs: |
282 self.configs[c].Extend(self.global_targets, self.global_tests) | 290 self.configs[c].Extend(self.global_targets, self.global_tests) |
283 return self.configs | 291 return self.configs |
284 | 292 |
285 def Main(argv): | 293 def Main(argv): |
286 parser = ArgumentParser() | 294 parser = ArgumentParser() |
287 configs = parser.ParseArguments(argv[1:]) | 295 configs = parser.ParseArguments(argv[1:]) |
288 return_code = 0 | 296 return_code = 0 |
| 297 # If we have Goma but it is not running, start it. |
| 298 if (GOMADIR is not None and |
| 299 _Call("ps -e | grep compiler_proxy > /dev/null", silent=True) != 0): |
| 300 _Call("%s/goma_ctl.py ensure_start" % GOMADIR) |
289 for c in configs: | 301 for c in configs: |
290 return_code += configs[c].Build() | 302 return_code += configs[c].Build() |
291 if return_code == 0: | 303 if return_code == 0: |
292 for c in configs: | 304 for c in configs: |
293 return_code += configs[c].RunTests() | 305 return_code += configs[c].RunTests() |
294 if return_code == 0: | 306 if return_code == 0: |
295 _Call("notify-send 'Done!' 'V8 compilation finished successfully.'", | 307 _Call("notify-send 'Done!' 'V8 compilation finished successfully.'", |
296 silent=True) | 308 silent=True) |
297 else: | 309 else: |
298 _Call("notify-send 'Error!' 'V8 compilation finished with errors.'", | 310 _Call("notify-send 'Error!' 'V8 compilation finished with errors.'", |
299 silent=True) | 311 silent=True) |
300 return return_code | 312 return return_code |
301 | 313 |
302 if __name__ == "__main__": | 314 if __name__ == "__main__": |
303 sys.exit(Main(sys.argv)) | 315 sys.exit(Main(sys.argv)) |
OLD | NEW |