diff options
-rwxr-xr-x | webkit/build/concatenate_js_files.py | 64 | ||||
-rw-r--r-- | webkit/webkit_glue.gyp | 45 |
2 files changed, 105 insertions, 4 deletions
diff --git a/webkit/build/concatenate_js_files.py b/webkit/build/concatenate_js_files.py new file mode 100755 index 0000000..b6d7efc --- /dev/null +++ b/webkit/build/concatenate_js_files.py @@ -0,0 +1,64 @@ +#!/usr/bin/env 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. + +# This script concatenates in place JS files in the order specified +# using <script> tags in a given 'order.html' file. + +from HTMLParser import HTMLParser +from cStringIO import StringIO +import os.path +import sys + +class OrderedJSFilesExtractor(HTMLParser): + + def __init__(self, order_html_name): + HTMLParser.__init__(self) + self.ordered_js_files = [] + order_html = open(order_html_name, 'r') + self.feed(order_html.read()) + + def handle_starttag(self, tag, attrs): + if tag == 'script': + attrs_dict = dict(attrs) + if ('type' in attrs_dict and attrs_dict['type'] == 'text/javascript' and + 'src' in attrs_dict): + self.ordered_js_files.append(attrs_dict['src']) + +def main(argv): + + if len(argv) < 3: + print('usage: %s order.html input_file_1 input_file_2 ... ' + 'output_file' % argv[0]) + return 1 + + output_file_name = argv.pop() + + full_paths = {} + for full_path in argv[2:]: + (dir_name, file_name) = os.path.split(full_path) + if file_name.endswith('.js'): + full_paths[file_name] = full_path + + extractor = OrderedJSFilesExtractor(argv[1]) + output = StringIO() + + for input_file_name in extractor.ordered_js_files: + if not input_file_name in full_paths: + print('A full path to %s isn\'t specified in command line. ' + 'Probably, you have an obsolete script entry in %s' % + (input_file_name, argv[1])) + output.write('/* %s */\n\n' % input_file_name) + input_file = open(full_paths[input_file_name], 'r') + output.write(input_file.read()) + output.write('\n') + input_file.close() + + output_file = open(output_file_name, 'w') + output_file.write(output.getvalue()) + output_file.close() + output.close() + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/webkit/webkit_glue.gyp b/webkit/webkit_glue.gyp index 914be72..f823dfd 100644 --- a/webkit/webkit_glue.gyp +++ b/webkit/webkit_glue.gyp @@ -39,6 +39,8 @@ 'glue/devtools/js/devtools_host_stub.js', 'glue/devtools/js/tests.js', ], + + 'debug_devtools%': 0, }, 'targets': [ { @@ -450,15 +452,24 @@ 'dependencies': [ 'devtools_html', ], + 'conditions': [ + ['debug_devtools==0', { + 'dependencies+': [ + 'concatenated_devtools_js', + ], + }], + ], 'copies': [ { 'destination': '<(PRODUCT_DIR)/resources/inspector', 'files': [ - '<@(devtools_files)', - '<@(webinspector_files)', - + ], + 'conditions': [ + ['debug_devtools==0', { + 'files/': [['exclude', '\\.js$']], + }], ], }, { @@ -501,7 +512,33 @@ 'action': ['python', '<@(_inputs)', '<@(_outputs)', '<@(devtools_files)'], }, ], - } + }, + { + 'target_name': 'concatenated_devtools_js', + 'type': 'none', + 'msvs_guid': '8CCFDF4A-B702-4988-9207-623D1477D3E7', + 'dependencies': [ + 'devtools_html', + ], + 'sources': [ + '<(PRODUCT_DIR)/resources/inspector/devtools.js', + ], + 'actions': [ + { + 'action_name': 'concatenate_devtools_js', + 'inputs': [ + 'build/concatenate_js_files.py', + '<(PRODUCT_DIR)/resources/inspector/devtools.html', + '<@(webinspector_files)', + '<@(devtools_files)', + ], + 'outputs': [ + '<(PRODUCT_DIR)/resources/inspector/devtools.js', + ], + 'action': ['python', '<@(_inputs)', '<@(_outputs)'], + }, + ], + }, ], # targets } |