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