File: vector_icons.gni

package info (click to toggle)
chromium 120.0.6099.224-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,112,112 kB
  • sloc: cpp: 32,907,025; ansic: 8,148,123; javascript: 3,679,536; python: 2,031,248; asm: 959,718; java: 804,675; xml: 617,256; sh: 111,417; objc: 100,835; perl: 88,443; cs: 53,032; makefile: 29,579; fortran: 24,137; php: 21,162; tcl: 21,147; sql: 20,809; ruby: 17,735; pascal: 12,864; yacc: 8,045; lisp: 3,388; lex: 1,323; ada: 727; awk: 329; jsp: 267; csh: 117; exp: 43; sed: 37
file content (65 lines) | stat: -rw-r--r-- 2,102 bytes parent folder | download | duplicates (4)
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
# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Creates an action that aggregates vector icon files (.icon) into a C++ file.
# In addition to running the action, the outputs should be added to another
# target's sources for compilation.
#
# Parameters
#
#   sources (required)
#       A list of icon filenames to use as inputs.
#
#   icon_directory (required)
#       The path component of the location of the icons, relative to the current
#       directory. For example, if the invoking BUILD file exists in //foo/bar
#       and the icons are in //foo/bar/vector_icons/, then icon_directory should
#       be set to "vector_icons". There must also be template files in this
#       directory.
#
# Example
#
#   See BUILD.gn in this directory (//components/vector_icons/) for an example.
template("aggregate_vector_icons") {
  assert(defined(invoker.sources),
         "Need sources in $target_name listing the icon files.")
  assert(
      defined(invoker.icon_directory),
      "Need icon_directory in $target_name where the icons and templates live.")

  public_deps = [ "//base" ]

  action(target_name) {
    visibility = [ ":*" ]

    script = "//components/vector_icons/aggregate_vector_icons.py"

    output_cc = "$target_gen_dir/vector_icons.cc"
    output_h = "$target_gen_dir/vector_icons.h"

    templates = [
      "vector_icons.cc.template",
      "vector_icons.h.template",
    ]
    inputs =
        rebase_path(templates + invoker.sources, ".", invoker.icon_directory) +
        [ "//components/vector_icons/aggregate_vector_icons.py" ]

    outputs = [
      output_cc,
      output_h,
    ]

    response_file_contents =
        rebase_path(invoker.sources, root_build_dir, invoker.icon_directory)

    args = [
      "--working_directory=" +
          rebase_path(invoker.icon_directory, root_build_dir),
      "--file_list={{response_file_name}}",
      "--output_cc=" + rebase_path(output_cc, root_build_dir),
      "--output_h=" + rebase_path(output_h, root_build_dir),
    ]
  }
}