summaryrefslogtreecommitdiffstats
path: root/webkit/build/action_jsconfig.py
blob: 7ddc12a23f13f22ac5378685c9ad6890e3d768ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python

# Copyright (c) 2009 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.

# usage: action_jsconfig.py JS_ENGINE OUTPUT_DIR CONFIG_H_IN FILES_TO_COPY
# JS_ENGINE may be v8 at present.  jsc will be added in the future.
# OUTPUT_DIR is the directory to put files in.
# CONFIG_H_IN is the path to config.h.in upon which config.h will be based.
# FILES_TO_COPY is a list of additional headers to be copied.  It may be empty.

import errno
import os
import os.path
import shutil
import sys

assert len(sys.argv) >= 4
js_engine = sys.argv[1]
output_dir = sys.argv[2]
config_h_in_path = sys.argv[3]
files_to_copy = sys.argv[4:]

config_h_path = os.path.join(output_dir, 'config.h')

assert js_engine == 'v8'

config_h_in_file = open(config_h_in_path)
config_h_in_contents = config_h_in_file.read()
config_h_in_file.close()

config_h_file = open(config_h_path, 'w')
print >>config_h_file, config_h_in_contents
if js_engine == 'v8':
  print >>config_h_file, '#define WTF_USE_V8_BINDING 1'
  print >>config_h_file, '#define WTF_USE_NPOBJECT 1'
config_h_file.close()

for file in files_to_copy:
  # This is not strictly right for jsc headers, which will want to be in one
  # more subdirectory named JavaScriptCore.
  basename = os.path.basename(file)
  destination = os.path.join(output_dir, basename)
  shutil.copy(file, destination)