xref: /aosp_15_r20/external/webrtc/third_party/abseil-cpp/absl/random/internal/BUILD.gn (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# Copyright 2018 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("traits") {
8  public = [ "traits.h" ]
9  deps = [
10    "//third_party/abseil-cpp/absl/base:config",
11    "//third_party/abseil-cpp/absl/numeric:bits",
12    "//third_party/abseil-cpp/absl/numeric:int128",
13  ]
14}
15
16absl_source_set("distribution_caller") {
17  public = [ "distribution_caller.h" ]
18  deps = [
19    "//third_party/abseil-cpp/absl/base:config",
20    "//third_party/abseil-cpp/absl/base:fast_type_id",
21    "//third_party/abseil-cpp/absl/utility",
22  ]
23}
24
25absl_source_set("fast_uniform_bits") {
26  public = [ "fast_uniform_bits.h" ]
27  deps = [
28    ":traits",
29    "//third_party/abseil-cpp/absl/base:config",
30    "//third_party/abseil-cpp/absl/meta:type_traits",
31  ]
32}
33
34absl_source_set("seed_material") {
35  public = [ "seed_material.h" ]
36  sources = [ "seed_material.cc" ]
37  if (is_win) {
38    # TODO(mbonadei): In the bazel file this is -DEFAULTLIB:bcrypt.lib.
39    libs = [ "bcrypt.lib" ]
40  }
41  deps = [
42    ":fast_uniform_bits",
43    "//third_party/abseil-cpp/absl/base:core_headers",
44    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
45    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
46    "//third_party/abseil-cpp/absl/strings",
47    "//third_party/abseil-cpp/absl/types:optional",
48    "//third_party/abseil-cpp/absl/types:span",
49  ]
50}
51
52absl_source_set("pool_urbg") {
53  public = [ "pool_urbg.h" ]
54  sources = [ "pool_urbg.cc" ]
55  deps = [
56    ":randen",
57    ":seed_material",
58    ":traits",
59    "//third_party/abseil-cpp/absl/base",
60    "//third_party/abseil-cpp/absl/base:config",
61    "//third_party/abseil-cpp/absl/base:core_headers",
62    "//third_party/abseil-cpp/absl/base:endian",
63    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
64    "//third_party/abseil-cpp/absl/random:seed_gen_exception",
65    "//third_party/abseil-cpp/absl/types:span",
66  ]
67}
68
69absl_source_set("explicit_seed_seq") {
70  testonly = true
71  public = [ "explicit_seed_seq.h" ]
72  deps = [
73    "//third_party/abseil-cpp/absl/base:config",
74    "//third_party/abseil-cpp/absl/base:endian",
75  ]
76}
77
78absl_source_set("sequence_urbg") {
79  testonly = true
80  public = [ "sequence_urbg.h" ]
81  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
82}
83
84absl_source_set("salted_seed_seq") {
85  public = [ "salted_seed_seq.h" ]
86  deps = [
87    ":seed_material",
88    "//third_party/abseil-cpp/absl/container:inlined_vector",
89    "//third_party/abseil-cpp/absl/meta:type_traits",
90    "//third_party/abseil-cpp/absl/types:optional",
91    "//third_party/abseil-cpp/absl/types:span",
92  ]
93}
94
95absl_source_set("iostream_state_saver") {
96  public = [ "iostream_state_saver.h" ]
97  deps = [
98    "//third_party/abseil-cpp/absl/meta:type_traits",
99    "//third_party/abseil-cpp/absl/numeric:int128",
100  ]
101}
102
103absl_source_set("generate_real") {
104  public = [ "generate_real.h" ]
105  deps = [
106    ":fastmath",
107    ":traits",
108    "//third_party/abseil-cpp/absl/meta:type_traits",
109    "//third_party/abseil-cpp/absl/numeric:bits",
110  ]
111}
112
113absl_source_set("fastmath") {
114  public = [ "fastmath.h" ]
115  deps = [ "//third_party/abseil-cpp/absl/numeric:bits" ]
116}
117
118absl_source_set("wide_multiply") {
119  public = [ "wide_multiply.h" ]
120  deps = [
121    ":traits",
122    "//third_party/abseil-cpp/absl/base:config",
123    "//third_party/abseil-cpp/absl/numeric:bits",
124    "//third_party/abseil-cpp/absl/numeric:int128",
125  ]
126}
127
128absl_source_set("nonsecure_base") {
129  public = [ "nonsecure_base.h" ]
130  deps = [
131    ":pool_urbg",
132    ":salted_seed_seq",
133    ":seed_material",
134    "//third_party/abseil-cpp/absl/base:core_headers",
135    "//third_party/abseil-cpp/absl/container:inlined_vector",
136    "//third_party/abseil-cpp/absl/meta:type_traits",
137    "//third_party/abseil-cpp/absl/types:span",
138  ]
139}
140
141absl_source_set("pcg_engine") {
142  public = [ "pcg_engine.h" ]
143  deps = [
144    ":fastmath",
145    ":iostream_state_saver",
146    "//third_party/abseil-cpp/absl/base:config",
147    "//third_party/abseil-cpp/absl/meta:type_traits",
148    "//third_party/abseil-cpp/absl/numeric:bits",
149    "//third_party/abseil-cpp/absl/numeric:int128",
150  ]
151}
152
153absl_source_set("randen_engine") {
154  public = [ "randen_engine.h" ]
155  deps = [
156    ":iostream_state_saver",
157    ":randen",
158    "//third_party/abseil-cpp/absl/base:endian",
159    "//third_party/abseil-cpp/absl/meta:type_traits",
160  ]
161}
162
163absl_source_set("platform") {
164  public = [
165    "platform.h",
166    "randen_traits.h",
167  ]
168  sources = [ "randen_round_keys.cc" ]
169  deps = [
170    "//build:chromeos_buildflags",
171    "//third_party/abseil-cpp/absl/base:config",
172  ]
173}
174
175absl_source_set("randen") {
176  public = [ "randen.h" ]
177  sources = [ "randen.cc" ]
178  deps = [
179    ":platform",
180    ":randen_hwaes",
181    ":randen_slow",
182    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
183  ]
184}
185
186absl_source_set("randen_slow") {
187  public = [ "randen_slow.h" ]
188  sources = [ "randen_slow.cc" ]
189  deps = [
190    ":platform",
191    "//third_party/abseil-cpp/absl/base:config",
192    "//third_party/abseil-cpp/absl/base:core_headers",
193    "//third_party/abseil-cpp/absl/base:endian",
194    "//third_party/abseil-cpp/absl/numeric:int128",
195  ]
196}
197
198absl_source_set("randen_hwaes") {
199  public = [
200    "randen_detect.h",
201    "randen_hwaes.h",
202  ]
203  sources = [ "randen_detect.cc" ]
204  deps = [
205    ":platform",
206    ":randen_hwaes_impl",
207    "//third_party/abseil-cpp/absl/base:config",
208  ]
209}
210
211absl_source_set("randen_hwaes_impl") {
212  sources = [
213    "randen_hwaes.cc",
214    "randen_hwaes.h",
215  ]
216  deps = [
217    ":platform",
218    "//third_party/abseil-cpp/absl/base:config",
219    "//third_party/abseil-cpp/absl/base:core_headers",
220    "//third_party/abseil-cpp/absl/numeric:int128",
221  ]
222}
223
224executable("gaussian_distribution_gentables") {
225  sources = [ "gaussian_distribution_gentables.cc" ]
226  deps = [
227    "//third_party/abseil-cpp/absl/base:core_headers",
228    "//third_party/abseil-cpp/absl/random:distributions",
229  ]
230}
231
232absl_source_set("distribution_test_util") {
233  testonly = true
234  public = [
235    "chi_square.h",
236    "distribution_test_util.h",
237  ]
238  sources = [
239    "chi_square.cc",
240    "distribution_test_util.cc",
241  ]
242  deps = [
243    "//third_party/abseil-cpp/absl/base:config",
244    "//third_party/abseil-cpp/absl/base:core_headers",
245    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
246    "//third_party/abseil-cpp/absl/strings",
247    "//third_party/abseil-cpp/absl/strings:str_format",
248    "//third_party/abseil-cpp/absl/types:span",
249  ]
250}
251
252# TODO(danilchap): Enable when can be compiled on all chromium bots.
253# nanobenchmark uses platform specific functions to take accurate current time,
254# and fallbacks to clock_gettime. Several chromium configurations lack both
255# dedicated code and the clock_gettime system function.
256# absl_source_set("nanobenchmark") {
257#  sources = [ "nanobenchmark.cc" ]
258#  deps = [
259#    ":platform",
260#    ":randen_engine",
261#    "//third_party/abseil-cpp/absl/base:config",
262#    "//third_party/abseil-cpp/absl/base:core_headers",
263#    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
264#  ]
265# }
266
267absl_source_set("uniform_helper") {
268  public = [ "uniform_helper.h" ]
269  deps = [
270    ":traits",
271    "//third_party/abseil-cpp/absl/base:config",
272    "//third_party/abseil-cpp/absl/meta:type_traits",
273    "//third_party/abseil-cpp/absl/numeric:int128",
274  ]
275}
276