Create DependencyManager API.
[chromium-blink-merge.git] / third_party / google_input_tools / closure.gni
blob81f866581fa621fb089718e6a9a5c762c432ab0c
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 template("build_closure") {
6   assert(defined(invoker.sources))
7   assert(defined(invoker.target))
8   action_name = target_name + "_js_gen"
9   action(action_name) {
10     script = "//third_party/google_input_tools/builder.py"
11     sources = invoker.sources
12     outputs = [
13       invoker.target,
14     ]
15     args = [
16       "--target",
17       rebase_path(invoker.target, root_build_dir),
18     ]
19     if (defined(invoker.json_file)) {
20       # Optionally parse list of sources from a json file. Useful when the list
21       # is sufficiently long to create problems with length restrictions on the
22       # command line.
23       assert(defined(invoker.json_sources))
24       args += [
25         "--json_file",
26         rebase_path(invoker.json_file, root_build_dir),
27         "--json_sources",
28         invoker.json_sources,
29       ]
30     } else {
31       # If the number of source files is short, they can be directly extracted
32       # from the command line.
33       args += [ "--sources" ] + sources
34     }
35     if (defined(invoker.path)) {
36       args += [
37         "--path",
38         invoker.path,
39       ]
40     }
41   }
42   group(target_name) {
43     deps = [
44       ":$action_name",
45     ]
46   }