1#!/usr/bin/env python
2# Copyright 2016 the V8 project authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import os
7import os.path
8import signal
9import subprocess
10import sys
11
12GCMOLE_PATH = os.path.dirname(os.path.abspath(__file__))
13CLANG_BIN = os.path.join(GCMOLE_PATH, 'gcmole-tools', 'bin')
14CLANG_PLUGINS = os.path.join(GCMOLE_PATH, 'gcmole-tools')
15LUA = os.path.join(GCMOLE_PATH, 'gcmole-tools', 'lua52')
16DRIVER = os.path.join(GCMOLE_PATH, 'gcmole.lua')
17BASE_PATH = os.path.dirname(os.path.dirname(GCMOLE_PATH))
18
19assert len(sys.argv) == 2
20
21if not os.path.isfile("out/Release/gen/torque-generated/builtin-definitions-from-dsl.h"):
22  print "Expected generated headers in out/Release/gen."
23  print "Either build v8 in out/Release or change gcmole.lua:115"
24  sys.exit(-1)
25
26proc = subprocess.Popen(
27    [LUA, DRIVER, sys.argv[1]],
28    env={'CLANG_BIN': CLANG_BIN, 'CLANG_PLUGINS': CLANG_PLUGINS},
29    cwd=BASE_PATH,
30)
31
32def handle_sigterm(*args):
33  try:
34    proc.kill()
35  except OSError:
36    pass
37
38signal.signal(signal.SIGTERM, handle_sigterm)
39
40proc.communicate()
41sys.exit(proc.returncode)
42