xref: /aosp_15_r20/external/webrtc/third_party/abseil-cpp/absl/flags/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright 2019 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//third_party/abseil-cpp/absl.gni")
6
7absl_source_set("path_util") {
8  public = [ "internal/path_util.h" ]
9  deps = [
10    "//third_party/abseil-cpp/absl/base:config",
11    "//third_party/abseil-cpp/absl/strings",
12  ]
13  visibility = [ ":*" ]
14}
15
16absl_source_set("program_name") {
17  sources = [ "internal/program_name.cc" ]
18  public = [ "internal/program_name.h" ]
19  deps = [
20    ":path_util",
21    "//third_party/abseil-cpp/absl/base:config",
22    "//third_party/abseil-cpp/absl/base:core_headers",
23    "//third_party/abseil-cpp/absl/strings",
24    "//third_party/abseil-cpp/absl/synchronization",
25  ]
26  visibility = [
27    ":*",
28    "../log:*",
29  ]
30}
31
32# Since absl/flags are only used by some test binaries (e.g. in WebRTC),
33# there is no need to strip flags from mobile platforms binaries.
34# This does not affect Chromium.
35config("absl_flags_config") {
36  defines = [ "ABSL_FLAGS_STRIP_NAMES=0" ]
37}
38
39absl_source_set("config") {
40  sources = [ "usage_config.cc" ]
41  public_configs = [ ":absl_flags_config" ]
42  public = [
43    "config.h",
44    "usage_config.h",
45  ]
46  deps = [
47    ":path_util",
48    ":program_name",
49    "//third_party/abseil-cpp/absl/base:config",
50    "//third_party/abseil-cpp/absl/base:core_headers",
51    "//third_party/abseil-cpp/absl/strings",
52    "//third_party/abseil-cpp/absl/synchronization",
53  ]
54}
55
56absl_source_set("marshalling") {
57  sources = [ "marshalling.cc" ]
58  public = [ "marshalling.h" ]
59  deps = [
60    "//third_party/abseil-cpp/absl/base:config",
61    "//third_party/abseil-cpp/absl/base:core_headers",
62    "//third_party/abseil-cpp/absl/base:log_severity",
63    "//third_party/abseil-cpp/absl/strings",
64    "//third_party/abseil-cpp/absl/strings:str_format",
65    "//third_party/abseil-cpp/absl/types:optional",
66  ]
67}
68
69absl_source_set("commandlineflag_internal") {
70  visibility = [ ":*" ]
71  public = [ "internal/commandlineflag.h" ]
72  sources = [ "internal/commandlineflag.cc" ]
73  deps = [
74    "//third_party/abseil-cpp/absl/base:config",
75    "//third_party/abseil-cpp/absl/base:fast_type_id",
76  ]
77}
78
79absl_source_set("commandlineflag") {
80  sources = [ "commandlineflag.cc" ]
81  public = [ "commandlineflag.h" ]
82  deps = [
83    ":commandlineflag_internal",
84    "//third_party/abseil-cpp/absl/base:config",
85    "//third_party/abseil-cpp/absl/base:fast_type_id",
86    "//third_party/abseil-cpp/absl/strings",
87    "//third_party/abseil-cpp/absl/types:optional",
88  ]
89}
90
91absl_source_set("private_handle_accessor") {
92  sources = [ "internal/private_handle_accessor.cc" ]
93  public = [ "internal/private_handle_accessor.h" ]
94  deps = [
95    ":commandlineflag",
96    ":commandlineflag_internal",
97    "//third_party/abseil-cpp/absl/base:config",
98    "//third_party/abseil-cpp/absl/strings",
99  ]
100  visibility = [ ":*" ]
101}
102
103absl_source_set("reflection") {
104  sources = [ "reflection.cc" ]
105  public = [
106    "internal/registry.h",
107    "reflection.h",
108  ]
109  deps = [
110    ":commandlineflag",
111    ":commandlineflag_internal",
112    ":config",
113    ":private_handle_accessor",
114    "//third_party/abseil-cpp/absl/base:config",
115    "//third_party/abseil-cpp/absl/base:core_headers",
116    "//third_party/abseil-cpp/absl/container:flat_hash_map",
117    "//third_party/abseil-cpp/absl/strings",
118    "//third_party/abseil-cpp/absl/synchronization",
119  ]
120}
121
122absl_source_set("flag_internal") {
123  sources = [ "internal/flag.cc" ]
124  public = [
125    "internal/flag.h",
126    "internal/sequence_lock.h",
127  ]
128  deps = [
129    ":commandlineflag",
130    ":commandlineflag_internal",
131    ":config",
132    ":marshalling",
133    ":reflection",
134    "//third_party/abseil-cpp/absl/base",
135    "//third_party/abseil-cpp/absl/base:config",
136    "//third_party/abseil-cpp/absl/base:core_headers",
137    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
138    "//third_party/abseil-cpp/absl/memory",
139    "//third_party/abseil-cpp/absl/meta:type_traits",
140    "//third_party/abseil-cpp/absl/strings",
141    "//third_party/abseil-cpp/absl/synchronization",
142    "//third_party/abseil-cpp/absl/utility",
143  ]
144  visibility = [
145    ":*",
146    "//third_party/abseil-cpp/absl/base/*",
147  ]
148}
149
150absl_source_set("flag") {
151  sources = [
152    "flag.cc",
153    "internal/flag_msvc.inc",
154  ]
155  public = [
156    "declare.h",
157    "flag.h",
158  ]
159  deps = [
160    ":config",
161    ":flag_internal",
162    ":reflection",
163    "//third_party/abseil-cpp/absl/base",
164    "//third_party/abseil-cpp/absl/base:config",
165    "//third_party/abseil-cpp/absl/base:core_headers",
166    "//third_party/abseil-cpp/absl/strings",
167  ]
168}
169
170absl_source_set("usage_internal") {
171  sources = [ "internal/usage.cc" ]
172  public = [ "internal/usage.h" ]
173  deps = [
174    ":commandlineflag",
175    ":config",
176    ":flag",
177    ":flag_internal",
178    ":path_util",
179    ":private_handle_accessor",
180    ":program_name",
181    ":reflection",
182    "//third_party/abseil-cpp/absl/base:config",
183    "//third_party/abseil-cpp/absl/base:core_headers",
184    "//third_party/abseil-cpp/absl/container:flat_hash_map",
185    "//third_party/abseil-cpp/absl/strings",
186  ]
187  visibility = [ ":*" ]
188}
189
190absl_source_set("usage") {
191  sources = [ "usage.cc" ]
192  public = [ "usage.h" ]
193  deps = [
194    ":usage_internal",
195    "//third_party/abseil-cpp/absl/base:config",
196    "//third_party/abseil-cpp/absl/base:core_headers",
197    "//third_party/abseil-cpp/absl/strings",
198    "//third_party/abseil-cpp/absl/synchronization",
199  ]
200}
201
202absl_source_set("parse") {
203  sources = [ "parse.cc" ]
204  public = [
205    "internal/parse.h",
206    "parse.h",
207  ]
208  deps = [
209    ":commandlineflag",
210    ":commandlineflag_internal",
211    ":config",
212    ":flag",
213    ":flag_internal",
214    ":private_handle_accessor",
215    ":program_name",
216    ":reflection",
217    ":usage",
218    ":usage_internal",
219    "//third_party/abseil-cpp/absl/base:config",
220    "//third_party/abseil-cpp/absl/base:core_headers",
221    "//third_party/abseil-cpp/absl/strings",
222    "//third_party/abseil-cpp/absl/synchronization",
223  ]
224}
225