aboutsummaryrefslogtreecommitdiff
path: root/third_party/closure_compiler/compile_js2.gypi
blob: 2c583ef97fdeceb5830d0761c0e9fc885a7528d5 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 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.
{
  'type': 'none',

  'variables': {
    'CLOSURE_DIR': '<(DEPTH)/third_party/closure_compiler',
    'EXTERNS_GYP': '<(CLOSURE_DIR)/externs/compiled_resources2.gyp',
    'INTERFACES_GYP': '<(CLOSURE_DIR)/interfaces/compiled_resources2.gyp',

    'default_source_file': '<(_target_name).js',
    'source_files%': ['<(default_source_file)'],
    'extra_inputs%': [],

    'includes': ['closure_args.gypi'],
  },

  'sources': ['<@(source_files)'],

  'all_dependent_settings': {
    'sources': ['<@(source_files)'],
  },

  'actions': [
    {
      'action_name': 'compile_js',

      # This action optionally takes these arguments:
      # - sources: a list of all of the source files to be compiled.
      #            If sources is undefined, a default of ['<(_target_name).js']
      #            is created (this probably suffices for many targets).
      # - out_file: a file where the compiled output is written to. The default
      #             is gen/closure/<path to |target_name|>/|target_name|.js.
      # - script_args: additional arguments to pass to compile2.py.
      # - closure_args: additional arguments to pass to the Closure compiler.
      # - disabled_closure_args: additional arguments dealing with the
      #                          strictness of compilation; Non-strict
      #                          defaults are provided that can be overriden.
      'variables': {
        'target_path': '<!(python <(CLOSURE_DIR)/build/outputs.py <(default_source_file))',
        'out_file%': '<(SHARED_INTERMEDIATE_DIR)/closure/<(target_path)',
        # TODO(dbeam): remove when no longer used from remoting/.
        'script_args%': [],
        'closure_args%': '<(default_closure_args)',
        'disabled_closure_args%': '<(default_disabled_closure_args)',
      },

      'inputs': [
        '<(CLOSURE_DIR)/build/outputs.py',
        '<(CLOSURE_DIR)/closure_args.gypi',
        '<(CLOSURE_DIR)/compile2.py',
        '<(CLOSURE_DIR)/compile_js2.gypi',
        '<(CLOSURE_DIR)/compiler/compiler.jar',
        '<(CLOSURE_DIR)/include_js.gypi',
        '<(CLOSURE_DIR)/processor.py',
        '>@(_sources)',
        # When converting to GN, write the paths to additional inputs in a GN
        # depfile file instead.
        '<@(extra_inputs)',
      ],

      'outputs': ['<(out_file)'],

      'action': [
        'python',
        '<(CLOSURE_DIR)/compile2.py',
        '<@(script_args)',
        '>@(_sources)',
        '--out_file', '<(out_file)',
        '--closure_args', '<@(closure_args)', '<@(disabled_closure_args)',
        # '--verbose' # for make glorious log spam of Closure compiler.
      ],

      'message': 'Compiling <(target_path)',
    },
  ],
}