1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# Include this file in a target to produce a bundled and compressed
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# JavaScript file from a set of files with closure-style dependency
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# declarations.  The following variables must be defined before including
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# this file:
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# js_root_flags: List of '-r' flags to jsbundler.py for locating the
10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#   .js files.
11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# output_file: path of the compressed JavaScript bundle.
12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#
13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# In addition, the target must have a 'sources' list containing the
14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)# top-level files for the bundle.
15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles){
17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  'actions': [
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    {
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'action_name': 'js_compress',
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'message': 'Compress js for <(_target_name)',
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'variables': {
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        'js_files': [
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)          '<!@(python tools/jsbundler.py <(js_root_flags) <(_sources))'
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        ],
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      },
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'inputs': [
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        'tools/jsbundler.py',
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        '<@(js_files)',
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      ],
30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'outputs': [
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        '<(output_file)'
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      ],
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      'action': [
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        'python',
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        'tools/jsbundler.py',
36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        '-m', 'compressed_bundle',
37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        '-o', '<(output_file)',
38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)        '<@(js_files)',
39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      ],
40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    },
41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  ],
42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
43