xref: /aosp_15_r20/external/angle/third_party/abseil-cpp/absl/random/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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("random") {
8  public = [ "random.h" ]
9  deps = [
10    ":distributions",
11    ":seed_sequences",
12    "//third_party/abseil-cpp/absl/random/internal:nonsecure_base",
13    "//third_party/abseil-cpp/absl/random/internal:pcg_engine",
14    "//third_party/abseil-cpp/absl/random/internal:pool_urbg",
15    "//third_party/abseil-cpp/absl/random/internal:randen_engine",
16  ]
17}
18
19absl_source_set("distributions") {
20  public = [
21    "bernoulli_distribution.h",
22    "beta_distribution.h",
23    "discrete_distribution.h",
24    "distributions.h",
25    "exponential_distribution.h",
26    "gaussian_distribution.h",
27    "log_uniform_int_distribution.h",
28    "poisson_distribution.h",
29    "uniform_int_distribution.h",
30    "uniform_real_distribution.h",
31    "zipf_distribution.h",
32  ]
33  sources = [
34    "discrete_distribution.cc",
35    "gaussian_distribution.cc",
36  ]
37  deps = [
38    "//third_party/abseil-cpp/absl/base:base_internal",
39    "//third_party/abseil-cpp/absl/base:config",
40    "//third_party/abseil-cpp/absl/base:core_headers",
41    "//third_party/abseil-cpp/absl/meta:type_traits",
42    "//third_party/abseil-cpp/absl/random/internal:distribution_caller",
43    "//third_party/abseil-cpp/absl/random/internal:fast_uniform_bits",
44    "//third_party/abseil-cpp/absl/random/internal:fastmath",
45    "//third_party/abseil-cpp/absl/random/internal:generate_real",
46    "//third_party/abseil-cpp/absl/random/internal:iostream_state_saver",
47    "//third_party/abseil-cpp/absl/random/internal:traits",
48    "//third_party/abseil-cpp/absl/random/internal:uniform_helper",
49    "//third_party/abseil-cpp/absl/random/internal:wide_multiply",
50    "//third_party/abseil-cpp/absl/strings",
51  ]
52}
53
54absl_source_set("seed_gen_exception") {
55  public = [ "seed_gen_exception.h" ]
56  sources = [ "seed_gen_exception.cc" ]
57  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
58}
59
60absl_source_set("seed_sequences") {
61  public = [ "seed_sequences.h" ]
62  sources = [ "seed_sequences.cc" ]
63  deps = [
64    ":seed_gen_exception",
65    "//third_party/abseil-cpp/absl/base:config",
66    "//third_party/abseil-cpp/absl/base:nullability",
67    "//third_party/abseil-cpp/absl/random/internal:pool_urbg",
68    "//third_party/abseil-cpp/absl/random/internal:salted_seed_seq",
69    "//third_party/abseil-cpp/absl/random/internal:seed_material",
70    "//third_party/abseil-cpp/absl/strings:string_view",
71    "//third_party/abseil-cpp/absl/types:span",
72  ]
73}
74
75absl_source_set("bit_gen_ref") {
76  public = [ "bit_gen_ref.h" ]
77  deps = [
78    ":random",
79    "//third_party/abseil-cpp/absl/base:config",
80    "//third_party/abseil-cpp/absl/base:core_headers",
81    "//third_party/abseil-cpp/absl/base:fast_type_id",
82    "//third_party/abseil-cpp/absl/meta:type_traits",
83    "//third_party/abseil-cpp/absl/random/internal:distribution_caller",
84    "//third_party/abseil-cpp/absl/random/internal:fast_uniform_bits",
85  ]
86}
87
88absl_source_set("mock_distributions") {
89  testonly = true
90  public = [ "mock_distributions.h" ]
91  deps = [
92    ":distributions",
93    ":mocking_bit_gen",
94    "//third_party/abseil-cpp/absl/base:config",
95    "//third_party/abseil-cpp/absl/random/internal:mock_overload_set",
96    "//third_party/abseil-cpp/absl/random/internal:mock_validators",
97  ]
98}
99
100absl_source_set("mocking_bit_gen") {
101  testonly = true
102  public = [ "mocking_bit_gen.h" ]
103  deps = [
104    ":random",
105    "//third_party/abseil-cpp/absl/base:config",
106    "//third_party/abseil-cpp/absl/base:fast_type_id",
107    "//third_party/abseil-cpp/absl/container:flat_hash_map",
108    "//third_party/abseil-cpp/absl/meta:type_traits",
109    "//third_party/abseil-cpp/absl/random/internal:mock_helpers",
110    "//third_party/abseil-cpp/absl/utility",
111    "//third_party/googletest:gtest",
112  ]
113}
114
115absl_test("distributions_test") {
116  sources = [ "distributions_test.cc" ]
117  deps = [
118    ":distributions",
119    ":random",
120    "//third_party/abseil-cpp/absl/meta:type_traits",
121    "//third_party/abseil-cpp/absl/numeric:int128",
122    "//third_party/abseil-cpp/absl/random/internal:distribution_test_util",
123  ]
124}
125
126absl_test("mock_distributions_test") {
127  sources = [ "mock_distributions_test.cc" ]
128  deps = [
129    ":distributions",
130    ":mock_distributions",
131    ":mocking_bit_gen",
132    ":random",
133    "//third_party/abseil-cpp/absl/numeric:int128",
134  ]
135}
136