File: rules.gni

package info (click to toggle)
chromium 138.0.7204.157-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 6,071,864 kB
  • sloc: cpp: 34,936,859; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,967; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (119 lines) | stat: -rw-r--r-- 3,584 bytes parent folder | download | duplicates (5)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Create a source_set with generated stubs for a POSIX shared library.
#
# Based on C-style signatures, it will generate a source and a header file
# and expose it as a source_set.
#
# See //tools/generate_stubs/generate_stubs.py for more info.
#
# Variables
#   sigs: list of files with C-style signatures (*.sig)
#   output_name: name of the generated files: $output_name.h and $output_name.cc
#   extra_header: prepend the contents of this file to the generated .cc file
#   logging_function: override the used logging function (default: VLOG(1))
#   logging_include: override the additional include (default: base/logging.h)
#   path_from_source: relative path of generated files from the project root
#   macro_include: overrides the include for DISABLE_CFI_ICALL
#                  (default: base/compiler_specific.h)
#   macro_deps: override the dependency for macro_include (default: //base)
#
# Example
#   generate_stubs("libfoo_stubs") {
#     sigs = [ "foo/foo.sigs" ]
#     extra_header = "foo/foo_stub_header.fragment"
#     output_name = "foo/foo_stubs"
#     deps = [
#       "//base",
#     ]
#   }
#
# Targets that depend on this target can `#include "path/to/foo/foo_stubs.h"`
template("generate_stubs") {
  forward_variables_from(invoker, [ "testonly" ])

  _gen_dir = get_path_info(invoker.output_name, "gen_dir")

  action("${target_name}__stubs_gen") {
    script = "//tools/generate_stubs/generate_stubs.py"
    sources = invoker.sigs
    inputs = [ invoker.extra_header ]
    outputs = [
      "${target_gen_dir}/${invoker.output_name}.cc",
      "${target_gen_dir}/${invoker.output_name}.h",
    ]
    args = [
      "--intermediate_dir",
      rebase_path(_gen_dir, root_build_dir),
      "--output",
      rebase_path(_gen_dir, root_build_dir),
      "--type",
      "posix_stubs",
      "--extra_stub_header",
      rebase_path(invoker.extra_header, root_build_dir),
      "--stubfile_name",
      get_path_info(invoker.output_name, "name"),
      "--path_from_source",
      rebase_path(_gen_dir, root_gen_dir),
    ]
    if (defined(invoker.path_from_source)) {
      args += [
        "--path_from_source",
        invoker.path_from_source,
      ]
    } else {
      args += [
        "--path_from_source",
        rebase_path(_gen_dir, root_gen_dir),
      ]
    }
    if (defined(invoker.logging_function)) {
      args += [
        "--logging-function",
        invoker.logging_function,
      ]
    }
    if (defined(invoker.logging_include)) {
      args += [
        "--logging-include",
        invoker.logging_include,
      ]
    }
    if (defined(invoker.macro_include)) {
      args += [
        "--macro-include",
        invoker.macro_include,
      ]
    }
    args += rebase_path(invoker.sigs, root_build_dir)
  }

  source_set(target_name) {
    forward_variables_from(invoker,
                           [
                             "deps",
                             "public_deps",
                             "macro_deps",
                             "visibility",
                           ])
    if (!defined(deps)) {
      deps = []
    }
    if (!defined(macro_deps)) {
      deps += [ "//base" ]
    } else {
      deps += macro_deps
    }
    if (!defined(public_deps)) {
      public_deps = []
    }
    public_deps += [ ":${target_name}__stubs_gen" ]
    sources = [
      "${target_gen_dir}/${invoker.output_name}.cc",
      "${target_gen_dir}/${invoker.output_name}.h",
    ]
    libs = [ "dl" ]
    include_dirs = [ target_gen_dir ]
    if (defined(invoker.configs)) {
      configs += invoker.configs
    }
  }
}