blob: fec6cd21e4b199cb7ab9b72b928ace0724041740 [file] [log] [blame]
# Copyright 2015 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 file is meant to be included into a target to provide a rule
# to build JavaScript bundles using closure compiler.
#
# To use this, create a gyp target with the following form:
# {
# 'target_name': 'my_js_target',
# 'type': 'none',
# 'variables': {
# 'closure_entry_point': 'name of the closure module',
# 'js_bundle_files': ['path/to/dependency/file',],
# },
# 'includes': ['path/to/this/gypi/file'],
# }
#
# Required variables:
# closure_entry_point - name of the entry point closure module.
# js_bundle_files - list of js files to build a bundle.
{
'variables': {
'closure_compiler_path': '<(DEPTH)/third_party/closure_compiler/compiler/compiler.jar',
},
'rules': [
{
'rule_name': 'jsbundlecompilation',
'extension': 'js',
'inputs': [
'<(closure_compiler_path)',
'<@(js_bundle_files)',
],
'outputs': [
'<(SHARED_INTERMEDIATE_DIR)/<(RULE_INPUT_NAME)',
],
'action': [
'java',
'-jar',
'<(closure_compiler_path)',
'--compilation_level',
'SIMPLE_OPTIMIZATIONS',
# Pass every js file to closure compiler. --only_closure_dependencies
# flag ensures that unnecessary files will not be compiled into the
# final output file.
'--js',
'<@(js_bundle_files)',
'--js_output_file',
'<@(_outputs)',
'--only_closure_dependencies',
'--closure_entry_point=<(closure_entry_point)',
],
'message': 'Building <(RULE_INPUT_NAME) JavaScript bundle',
} # rule_name: jsbundlecompilation
]
}