xref: /aosp_15_r20/external/abseil-cpp/absl/random/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
1#
2# Copyright 2019 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17absl_cc_library(
18  NAME
19    random_random
20  HDRS
21    "random.h"
22  COPTS
23    ${ABSL_DEFAULT_COPTS}
24  LINKOPTS
25    ${ABSL_DEFAULT_LINKOPTS}
26  DEPS
27    absl::random_distributions
28    absl::random_internal_nonsecure_base
29    absl::random_internal_pcg_engine
30    absl::random_internal_pool_urbg
31    absl::random_internal_randen_engine
32    absl::random_seed_sequences
33)
34
35absl_cc_library(
36  NAME
37    random_bit_gen_ref
38  HDRS
39    "bit_gen_ref.h"
40  COPTS
41    ${ABSL_DEFAULT_COPTS}
42  LINKOPTS
43    ${ABSL_DEFAULT_LINKOPTS}
44  DEPS
45    absl::core_headers
46    absl::random_internal_distribution_caller
47    absl::random_internal_fast_uniform_bits
48    absl::type_traits
49)
50
51absl_cc_test(
52  NAME
53    random_bit_gen_ref_test
54  SRCS
55    "bit_gen_ref_test.cc"
56  COPTS
57    ${ABSL_TEST_COPTS}
58  LINKOPTS
59    ${ABSL_DEFAULT_LINKOPTS}
60  DEPS
61    absl::random_bit_gen_ref
62    absl::random_random
63    absl::random_internal_sequence_urbg
64    absl::fast_type_id
65    GTest::gmock
66    GTest::gtest_main
67)
68
69# Internal-only target, do not depend on directly.
70absl_cc_library(
71  NAME
72    random_internal_mock_helpers
73  HDRS
74    "internal/mock_helpers.h"
75  COPTS
76    ${ABSL_DEFAULT_COPTS}
77  LINKOPTS
78    ${ABSL_DEFAULT_LINKOPTS}
79  DEPS
80    absl::config
81    absl::fast_type_id
82    absl::optional
83)
84
85# Internal-only target, do not depend on directly.
86absl_cc_library(
87  NAME
88    random_internal_mock_overload_set
89  HDRS
90    "internal/mock_overload_set.h"
91  COPTS
92    ${ABSL_DEFAULT_COPTS}
93  LINKOPTS
94    ${ABSL_DEFAULT_LINKOPTS}
95  DEPS
96    absl::config
97    absl::random_mocking_bit_gen
98    absl::random_internal_mock_helpers
99  TESTONLY
100)
101
102absl_cc_library(
103  NAME
104    random_mocking_bit_gen
105  HDRS
106    "mock_distributions.h"
107    "mocking_bit_gen.h"
108  COPTS
109    ${ABSL_DEFAULT_COPTS}
110  LINKOPTS
111    ${ABSL_DEFAULT_LINKOPTS}
112  DEPS
113    absl::config
114    absl::core_headers
115    absl::fast_type_id
116    absl::flat_hash_map
117    absl::raw_logging_internal
118    absl::random_internal_mock_helpers
119    absl::random_random
120    absl::type_traits
121    absl::utility
122    GTest::gmock
123    GTest::gtest
124  PUBLIC
125  TESTONLY
126)
127
128absl_cc_test(
129  NAME
130    random_mock_distributions_test
131  SRCS
132    "mock_distributions_test.cc"
133  COPTS
134    ${ABSL_TEST_COPTS}
135  LINKOPTS
136    ${ABSL_DEFAULT_LINKOPTS}
137  DEPS
138    absl::random_distributions
139    absl::random_mocking_bit_gen
140    absl::random_random
141    GTest::gmock
142    GTest::gtest_main
143)
144
145absl_cc_test(
146  NAME
147    random_mocking_bit_gen_test
148  SRCS
149    "mocking_bit_gen_test.cc"
150  COPTS
151    ${ABSL_TEST_COPTS}
152  LINKOPTS
153    ${ABSL_DEFAULT_LINKOPTS}
154  DEPS
155    absl::random_bit_gen_ref
156    absl::random_mocking_bit_gen
157    absl::random_random
158    GTest::gmock
159    GTest::gtest_main
160)
161
162absl_cc_library(
163  NAME
164    random_distributions
165  SRCS
166    "discrete_distribution.cc"
167    "gaussian_distribution.cc"
168  HDRS
169    "bernoulli_distribution.h"
170    "beta_distribution.h"
171    "discrete_distribution.h"
172    "distributions.h"
173    "exponential_distribution.h"
174    "gaussian_distribution.h"
175    "log_uniform_int_distribution.h"
176    "poisson_distribution.h"
177    "uniform_int_distribution.h"
178    "uniform_real_distribution.h"
179    "zipf_distribution.h"
180  COPTS
181    ${ABSL_DEFAULT_COPTS}
182  LINKOPTS
183    ${ABSL_DEFAULT_LINKOPTS}
184  DEPS
185    absl::base_internal
186    absl::config
187    absl::core_headers
188    absl::random_internal_generate_real
189    absl::random_internal_distribution_caller
190    absl::random_internal_fast_uniform_bits
191    absl::random_internal_fastmath
192    absl::random_internal_iostream_state_saver
193    absl::random_internal_traits
194    absl::random_internal_uniform_helper
195    absl::random_internal_wide_multiply
196    absl::strings
197    absl::type_traits
198)
199
200absl_cc_library(
201  NAME
202    random_seed_gen_exception
203  SRCS
204    "seed_gen_exception.cc"
205  HDRS
206    "seed_gen_exception.h"
207  COPTS
208    ${ABSL_DEFAULT_COPTS}
209  LINKOPTS
210    ${ABSL_DEFAULT_LINKOPTS}
211  DEPS
212    absl::config
213)
214
215absl_cc_library(
216  NAME
217    random_seed_sequences
218  SRCS
219    "seed_sequences.cc"
220  HDRS
221    "seed_sequences.h"
222  COPTS
223    ${ABSL_DEFAULT_COPTS}
224  LINKOPTS
225    ${ABSL_DEFAULT_LINKOPTS}
226  DEPS
227    absl::config
228    absl::inlined_vector
229    absl::nullability
230    absl::random_internal_pool_urbg
231    absl::random_internal_salted_seed_seq
232    absl::random_internal_seed_material
233    absl::random_seed_gen_exception
234    absl::span
235    absl::string_view
236)
237
238absl_cc_test(
239  NAME
240    random_bernoulli_distribution_test
241  SRCS
242    "bernoulli_distribution_test.cc"
243  COPTS
244    ${ABSL_TEST_COPTS}
245  LINKOPTS
246    ${ABSL_DEFAULT_LINKOPTS}
247  DEPS
248    absl::random_distributions
249    absl::random_random
250    absl::random_internal_sequence_urbg
251    absl::random_internal_pcg_engine
252    GTest::gmock
253    GTest::gtest_main
254)
255
256absl_cc_test(
257  NAME
258    random_beta_distribution_test
259  SRCS
260    "beta_distribution_test.cc"
261  COPTS
262    ${ABSL_TEST_COPTS}
263  LINKOPTS
264    ${ABSL_DEFAULT_LINKOPTS}
265  DEPS
266    absl::log
267    absl::numeric_representation
268    absl::random_distributions
269    absl::random_random
270    absl::random_internal_distribution_test_util
271    absl::random_internal_sequence_urbg
272    absl::random_internal_pcg_engine
273    absl::strings
274    absl::str_format
275    GTest::gmock
276    GTest::gtest_main
277)
278
279absl_cc_test(
280  NAME
281    random_distributions_test
282  SRCS
283    "distributions_test.cc"
284  COPTS
285    ${ABSL_TEST_COPTS}
286  LINKOPTS
287    ${ABSL_DEFAULT_LINKOPTS}
288  DEPS
289    absl::random_distributions
290    absl::random_random
291    absl::type_traits
292    absl::int128
293    absl::random_internal_distribution_test_util
294    GTest::gmock
295    GTest::gtest_main
296)
297
298absl_cc_test(
299  NAME
300    random_generators_test
301  SRCS
302    "generators_test.cc"
303  COPTS
304    ${ABSL_TEST_COPTS}
305  LINKOPTS
306    ${ABSL_DEFAULT_LINKOPTS}
307  DEPS
308    absl::random_distributions
309    absl::random_random
310    absl::raw_logging_internal
311    GTest::gmock
312    GTest::gtest_main
313)
314
315absl_cc_test(
316  NAME
317    random_log_uniform_int_distribution_test
318  SRCS
319    "log_uniform_int_distribution_test.cc"
320  COPTS
321    ${ABSL_TEST_COPTS}
322  LINKOPTS
323    ${ABSL_DEFAULT_LINKOPTS}
324  DEPS
325    absl::log
326    absl::random_distributions
327    absl::random_internal_distribution_test_util
328    absl::random_internal_pcg_engine
329    absl::random_internal_sequence_urbg
330    absl::random_random
331    absl::strings
332    absl::str_format
333    GTest::gmock
334    GTest::gtest_main
335)
336
337absl_cc_test(
338  NAME
339    random_discrete_distribution_test
340  SRCS
341    "discrete_distribution_test.cc"
342  COPTS
343    ${ABSL_TEST_COPTS}
344  LINKOPTS
345    ${ABSL_DEFAULT_LINKOPTS}
346  DEPS
347    absl::log
348    absl::random_distributions
349    absl::random_internal_distribution_test_util
350    absl::random_internal_pcg_engine
351    absl::random_internal_sequence_urbg
352    absl::random_random
353    absl::strings
354    GTest::gmock
355    GTest::gtest_main
356)
357
358absl_cc_test(
359  NAME
360    random_poisson_distribution_test
361  SRCS
362    "poisson_distribution_test.cc"
363  COPTS
364    ${ABSL_TEST_COPTS}
365  LINKOPTS
366    ${ABSL_DEFAULT_LINKOPTS}
367  DEPS
368    absl::random_distributions
369    absl::random_random
370    absl::core_headers
371    absl::flat_hash_map
372    absl::log
373    absl::random_internal_distribution_test_util
374    absl::random_internal_pcg_engine
375    absl::random_internal_sequence_urbg
376    absl::strings
377    absl::str_format
378    GTest::gmock
379    GTest::gtest_main
380)
381
382absl_cc_test(
383  NAME
384    random_exponential_distribution_test
385  SRCS
386    "exponential_distribution_test.cc"
387  COPTS
388    ${ABSL_TEST_COPTS}
389  LINKOPTS
390    ${ABSL_DEFAULT_LINKOPTS}
391  DEPS
392    absl::core_headers
393    absl::log
394    absl::numeric_representation
395    absl::random_distributions
396    absl::random_internal_distribution_test_util
397    absl::random_internal_pcg_engine
398    absl::random_internal_sequence_urbg
399    absl::random_random
400    absl::strings
401    absl::str_format
402    GTest::gmock
403    GTest::gtest_main
404)
405
406absl_cc_test(
407  NAME
408    random_gaussian_distribution_test
409  SRCS
410    "gaussian_distribution_test.cc"
411  COPTS
412    ${ABSL_TEST_COPTS}
413  LINKOPTS
414    ${ABSL_DEFAULT_LINKOPTS}
415  DEPS
416    absl::core_headers
417    absl::log
418    absl::numeric_representation
419    absl::random_distributions
420    absl::random_internal_distribution_test_util
421    absl::random_internal_sequence_urbg
422    absl::random_random
423    absl::strings
424    absl::str_format
425    GTest::gmock
426    GTest::gtest_main
427)
428
429absl_cc_test(
430  NAME
431    random_uniform_int_distribution_test
432  SRCS
433    "uniform_int_distribution_test.cc"
434  COPTS
435    ${ABSL_TEST_COPTS}
436  LINKOPTS
437    ${ABSL_DEFAULT_LINKOPTS}
438  DEPS
439    absl::log
440    absl::random_distributions
441    absl::random_internal_distribution_test_util
442    absl::random_internal_pcg_engine
443    absl::random_internal_sequence_urbg
444    absl::random_random
445    absl::strings
446    GTest::gmock
447    GTest::gtest_main
448)
449
450absl_cc_test(
451  NAME
452    random_uniform_real_distribution_test
453  SRCS
454    "uniform_real_distribution_test.cc"
455  COPTS
456    ${ABSL_TEST_COPTS}
457  LINKOPTS
458    ${ABSL_DEFAULT_LINKOPTS}
459  DEPS
460    absl::log
461    absl::numeric_representation
462    absl::random_distributions
463    absl::random_internal_distribution_test_util
464    absl::random_internal_pcg_engine
465    absl::random_internal_sequence_urbg
466    absl::random_random
467    absl::strings
468    GTest::gmock
469    GTest::gtest_main
470)
471
472absl_cc_test(
473  NAME
474    random_zipf_distribution_test
475  SRCS
476    "zipf_distribution_test.cc"
477  COPTS
478    ${ABSL_TEST_COPTS}
479  LINKOPTS
480    ${ABSL_DEFAULT_LINKOPTS}
481  DEPS
482    absl::log
483    absl::random_distributions
484    absl::random_internal_distribution_test_util
485    absl::random_internal_pcg_engine
486    absl::random_internal_sequence_urbg
487    absl::random_random
488    absl::strings
489    GTest::gmock
490    GTest::gtest_main
491)
492
493absl_cc_test(
494  NAME
495    random_examples_test
496  SRCS
497    "examples_test.cc"
498  COPTS
499    ${ABSL_TEST_COPTS}
500  LINKOPTS
501    ${ABSL_DEFAULT_LINKOPTS}
502  DEPS
503    absl::random_random
504    GTest::gtest_main
505)
506
507absl_cc_test(
508  NAME
509    random_seed_sequences_test
510  SRCS
511    "seed_sequences_test.cc"
512  COPTS
513    ${ABSL_TEST_COPTS}
514  LINKOPTS
515    ${ABSL_DEFAULT_LINKOPTS}
516  DEPS
517    absl::random_seed_sequences
518    absl::random_internal_nonsecure_base
519    absl::random_random
520    GTest::gmock
521    GTest::gtest_main
522)
523
524# Internal-only target, do not depend on directly.
525absl_cc_library(
526  NAME
527    random_internal_traits
528  HDRS
529    "internal/traits.h"
530  COPTS
531    ${ABSL_DEFAULT_COPTS}
532  LINKOPTS
533    ${ABSL_DEFAULT_LINKOPTS}
534  DEPS
535    absl::config
536)
537
538# Internal-only target, do not depend on directly.
539absl_cc_library(
540  NAME
541    random_internal_distribution_caller
542  HDRS
543    "internal/distribution_caller.h"
544  COPTS
545    ${ABSL_DEFAULT_COPTS}
546  LINKOPTS
547    ${ABSL_DEFAULT_LINKOPTS}
548  DEPS
549    absl::config
550    absl::utility
551    absl::fast_type_id
552)
553
554# Internal-only target, do not depend on directly.
555absl_cc_library(
556  NAME
557    random_internal_fast_uniform_bits
558  HDRS
559    "internal/fast_uniform_bits.h"
560  COPTS
561    ${ABSL_DEFAULT_COPTS}
562  LINKOPTS
563    ${ABSL_DEFAULT_LINKOPTS}
564  DEPS
565    absl::config
566)
567
568# Internal-only target, do not depend on directly.
569absl_cc_library(
570  NAME
571    random_internal_seed_material
572  SRCS
573    "internal/seed_material.cc"
574  HDRS
575    "internal/seed_material.h"
576  COPTS
577    ${ABSL_DEFAULT_COPTS}
578  LINKOPTS
579    ${ABSL_DEFAULT_LINKOPTS}
580    $<$<BOOL:${MINGW}>:-lbcrypt>
581  DEPS
582    absl::core_headers
583    absl::optional
584    absl::random_internal_fast_uniform_bits
585    absl::raw_logging_internal
586    absl::span
587    absl::strings
588)
589
590# Internal-only target, do not depend on directly.
591absl_cc_library(
592  NAME
593    random_internal_pool_urbg
594  SRCS
595    "internal/pool_urbg.cc"
596  HDRS
597    "internal/pool_urbg.h"
598  COPTS
599    ${ABSL_DEFAULT_COPTS}
600  LINKOPTS
601    ${ABSL_DEFAULT_LINKOPTS}
602  DEPS
603    absl::base
604    absl::config
605    absl::core_headers
606    absl::endian
607    absl::random_internal_randen
608    absl::random_internal_seed_material
609    absl::random_internal_traits
610    absl::random_seed_gen_exception
611    absl::raw_logging_internal
612    absl::span
613)
614
615# Internal-only target, do not depend on directly.
616absl_cc_library(
617  NAME
618    random_internal_explicit_seed_seq
619  HDRS
620      "internal/random_internal_explicit_seed_seq.h"
621  COPTS
622    ${ABSL_DEFAULT_COPTS}
623  LINKOPTS
624    ${ABSL_DEFAULT_LINKOPTS}
625  DEPS
626    absl::config
627    absl::endian
628  TESTONLY
629)
630
631# Internal-only target, do not depend on directly.
632absl_cc_library(
633  NAME
634    random_internal_sequence_urbg
635  HDRS
636    "internal/sequence_urbg.h"
637  COPTS
638    ${ABSL_DEFAULT_COPTS}
639  LINKOPTS
640    ${ABSL_DEFAULT_LINKOPTS}
641  DEPS
642    absl::config
643  TESTONLY
644)
645
646# Internal-only target, do not depend on directly.
647absl_cc_library(
648  NAME
649    random_internal_salted_seed_seq
650  HDRS
651    "internal/salted_seed_seq.h"
652  COPTS
653    ${ABSL_DEFAULT_COPTS}
654  LINKOPTS
655    ${ABSL_DEFAULT_LINKOPTS}
656  DEPS
657    absl::inlined_vector
658    absl::optional
659    absl::span
660    absl::random_internal_seed_material
661    absl::type_traits
662)
663
664# Internal-only target, do not depend on directly.
665absl_cc_library(
666  NAME
667    random_internal_iostream_state_saver
668  HDRS
669    "internal/iostream_state_saver.h"
670  COPTS
671    ${ABSL_DEFAULT_COPTS}
672  LINKOPTS
673    ${ABSL_DEFAULT_LINKOPTS}
674  DEPS
675    absl::int128
676    absl::type_traits
677)
678
679# Internal-only target, do not depend on directly.
680absl_cc_library(
681  NAME
682    random_internal_generate_real
683  HDRS
684    "internal/generate_real.h"
685  COPTS
686    ${ABSL_DEFAULT_COPTS}
687  LINKOPTS
688    ${ABSL_DEFAULT_LINKOPTS}
689  DEPS
690    absl::bits
691    absl::random_internal_fastmath
692    absl::random_internal_traits
693    absl::type_traits
694)
695
696# Internal-only target, do not depend on directly.
697absl_cc_library(
698  NAME
699    random_internal_wide_multiply
700  HDRS
701    "internal/wide_multiply.h"
702  COPTS
703    ${ABSL_DEFAULT_COPTS}
704  LINKOPTS
705    ${ABSL_DEFAULT_LINKOPTS}
706  DEPS
707    absl::bits
708    absl::config
709    absl::int128
710)
711
712# Internal-only target, do not depend on directly.
713absl_cc_library(
714  NAME
715    random_internal_fastmath
716  HDRS
717    "internal/fastmath.h"
718  COPTS
719    ${ABSL_DEFAULT_COPTS}
720  LINKOPTS
721    ${ABSL_DEFAULT_LINKOPTS}
722  DEPS
723    absl::bits
724)
725
726# Internal-only target, do not depend on directly.
727absl_cc_library(
728  NAME
729    random_internal_nonsecure_base
730  HDRS
731    "internal/nonsecure_base.h"
732  COPTS
733    ${ABSL_DEFAULT_COPTS}
734  LINKOPTS
735    ${ABSL_DEFAULT_LINKOPTS}
736  DEPS
737    absl::core_headers
738    absl::inlined_vector
739    absl::random_internal_pool_urbg
740    absl::random_internal_salted_seed_seq
741    absl::random_internal_seed_material
742    absl::span
743    absl::type_traits
744)
745
746# Internal-only target, do not depend on directly.
747absl_cc_library(
748  NAME
749    random_internal_pcg_engine
750  HDRS
751    "internal/pcg_engine.h"
752  COPTS
753    ${ABSL_DEFAULT_COPTS}
754  LINKOPTS
755    ${ABSL_DEFAULT_LINKOPTS}
756  DEPS
757    absl::config
758    absl::int128
759    absl::random_internal_fastmath
760    absl::random_internal_iostream_state_saver
761    absl::type_traits
762)
763
764# Internal-only target, do not depend on directly.
765absl_cc_library(
766  NAME
767    random_internal_randen_engine
768  HDRS
769    "internal/randen_engine.h"
770  COPTS
771    ${ABSL_DEFAULT_COPTS}
772  LINKOPTS
773    ${ABSL_DEFAULT_LINKOPTS}
774  DEPS
775    absl::endian
776    absl::random_internal_iostream_state_saver
777    absl::random_internal_randen
778    absl::raw_logging_internal
779    absl::type_traits
780)
781
782# Internal-only target, do not depend on directly.
783absl_cc_library(
784  NAME
785    random_internal_platform
786  HDRS
787    "internal/randen_traits.h"
788    "internal/platform.h"
789  SRCS
790    "internal/randen_round_keys.cc"
791  COPTS
792    ${ABSL_DEFAULT_COPTS}
793  LINKOPTS
794    ${ABSL_DEFAULT_LINKOPTS}
795  DEPS
796    absl::config
797)
798
799# Internal-only target, do not depend on directly.
800absl_cc_library(
801  NAME
802    random_internal_randen
803  SRCS
804    "internal/randen.cc"
805  HDRS
806    "internal/randen.h"
807  COPTS
808    ${ABSL_DEFAULT_COPTS}
809  LINKOPTS
810    ${ABSL_DEFAULT_LINKOPTS}
811  DEPS
812    absl::random_internal_platform
813    absl::random_internal_randen_hwaes
814    absl::random_internal_randen_slow
815)
816
817# Internal-only target, do not depend on directly.
818absl_cc_library(
819  NAME
820    random_internal_randen_slow
821  SRCS
822    "internal/randen_slow.cc"
823  HDRS
824    "internal/randen_slow.h"
825  COPTS
826    ${ABSL_DEFAULT_COPTS}
827  LINKOPTS
828    ${ABSL_DEFAULT_LINKOPTS}
829  DEPS
830    absl::random_internal_platform
831    absl::config
832)
833
834# Internal-only target, do not depend on directly.
835absl_cc_library(
836  NAME
837    random_internal_randen_hwaes
838  SRCS
839    "internal/randen_detect.cc"
840  HDRS
841    "internal/randen_detect.h"
842    "internal/randen_hwaes.h"
843  COPTS
844    ${ABSL_DEFAULT_COPTS}
845    ${ABSL_RANDOM_RANDEN_COPTS}
846  LINKOPTS
847    ${ABSL_DEFAULT_LINKOPTS}
848  DEPS
849    absl::random_internal_platform
850    absl::random_internal_randen_hwaes_impl
851    absl::config
852)
853
854# Internal-only target, do not depend on directly.
855absl_cc_library(
856  NAME
857    random_internal_randen_hwaes_impl
858  SRCS
859    "internal/randen_hwaes.cc"
860    "internal/randen_hwaes.h"
861  COPTS
862    ${ABSL_DEFAULT_COPTS}
863    ${ABSL_RANDOM_RANDEN_COPTS}
864  LINKOPTS
865    ${ABSL_DEFAULT_LINKOPTS}
866  DEPS
867    absl::random_internal_platform
868    absl::config
869)
870
871# Internal-only target, do not depend on directly.
872absl_cc_library(
873  NAME
874    random_internal_distribution_test_util
875  SRCS
876    "internal/chi_square.cc"
877    "internal/distribution_test_util.cc"
878  HDRS
879    "internal/chi_square.h"
880    "internal/distribution_test_util.h"
881  COPTS
882    ${ABSL_DEFAULT_COPTS}
883  LINKOPTS
884    ${ABSL_DEFAULT_LINKOPTS}
885  DEPS
886    absl::config
887    absl::core_headers
888    absl::raw_logging_internal
889    absl::strings
890    absl::str_format
891    absl::span
892)
893
894# Internal-only target, do not depend on directly.
895absl_cc_test(
896  NAME
897    random_internal_traits_test
898  SRCS
899    "internal/traits_test.cc"
900  COPTS
901    ${ABSL_TEST_COPTS}
902  LINKOPTS
903    ${ABSL_DEFAULT_LINKOPTS}
904  DEPS
905    absl::random_internal_traits
906    GTest::gtest_main
907)
908
909# Internal-only target, do not depend on directly.
910absl_cc_test(
911  NAME
912    random_internal_generate_real_test
913  SRCS
914    "internal/generate_real_test.cc"
915  COPTS
916    ${ABSL_TEST_COPTS}
917  LINKOPTS
918    ${ABSL_DEFAULT_LINKOPTS}
919  DEPS
920    absl::bits
921    absl::flags
922    absl::random_internal_generate_real
923    GTest::gtest_main
924)
925
926# Internal-only target, do not depend on directly.
927absl_cc_test(
928  NAME
929    random_internal_distribution_test_util_test
930  SRCS
931    "internal/distribution_test_util_test.cc"
932  COPTS
933    ${ABSL_TEST_COPTS}
934  LINKOPTS
935    ${ABSL_DEFAULT_LINKOPTS}
936  DEPS
937    absl::random_internal_distribution_test_util
938    GTest::gtest_main
939)
940
941# Internal-only target, do not depend on directly.
942absl_cc_test(
943  NAME
944    random_internal_fastmath_test
945  SRCS
946    "internal/fastmath_test.cc"
947  COPTS
948    ${ABSL_TEST_COPTS}
949  LINKOPTS
950    ${ABSL_DEFAULT_LINKOPTS}
951  DEPS
952    absl::random_internal_fastmath
953    GTest::gtest_main
954)
955
956# Internal-only target, do not depend on directly.
957absl_cc_test(
958  NAME
959    random_internal_explicit_seed_seq_test
960  SRCS
961    "internal/explicit_seed_seq_test.cc"
962  COPTS
963    ${ABSL_TEST_COPTS}
964  LINKOPTS
965    ${ABSL_DEFAULT_LINKOPTS}
966  DEPS
967    absl::random_internal_explicit_seed_seq
968    absl::random_seed_sequences
969    GTest::gmock
970    GTest::gtest_main
971)
972
973# Internal-only target, do not depend on directly.
974absl_cc_test(
975  NAME
976    random_internal_salted_seed_seq_test
977  SRCS
978    "internal/salted_seed_seq_test.cc"
979  COPTS
980    ${ABSL_TEST_COPTS}
981  LINKOPTS
982    ${ABSL_DEFAULT_LINKOPTS}
983  DEPS
984    absl::random_internal_salted_seed_seq
985    GTest::gmock
986    GTest::gtest_main
987)
988
989# Internal-only target, do not depend on directly.
990absl_cc_test(
991  NAME
992    random_internal_chi_square_test
993  SRCS
994    "internal/chi_square_test.cc"
995  COPTS
996    ${ABSL_TEST_COPTS}
997  LINKOPTS
998    ${ABSL_DEFAULT_LINKOPTS}
999  DEPS
1000    absl::core_headers
1001    absl::random_internal_distribution_test_util
1002    GTest::gtest_main
1003)
1004
1005# Internal-only target, do not depend on directly.
1006absl_cc_test(
1007  NAME
1008    random_internal_fast_uniform_bits_test
1009  SRCS
1010    "internal/fast_uniform_bits_test.cc"
1011  COPTS
1012    ${ABSL_TEST_COPTS}
1013  LINKOPTS
1014    ${ABSL_DEFAULT_LINKOPTS}
1015  DEPS
1016    absl::random_internal_fast_uniform_bits
1017    GTest::gtest_main
1018)
1019
1020# Internal-only target, do not depend on directly.
1021absl_cc_test(
1022  NAME
1023    random_internal_nonsecure_base_test
1024  SRCS
1025    "internal/nonsecure_base_test.cc"
1026  COPTS
1027    ${ABSL_TEST_COPTS}
1028  LINKOPTS
1029    ${ABSL_DEFAULT_LINKOPTS}
1030  DEPS
1031    absl::random_internal_nonsecure_base
1032    absl::random_random
1033    absl::random_distributions
1034    absl::random_seed_sequences
1035    absl::strings
1036    GTest::gtest_main
1037)
1038
1039# Internal-only target, do not depend on directly.
1040absl_cc_test(
1041  NAME
1042    random_internal_seed_material_test
1043  SRCS
1044    "internal/seed_material_test.cc"
1045  COPTS
1046    ${ABSL_TEST_COPTS}
1047  LINKOPTS
1048    ${ABSL_DEFAULT_LINKOPTS}
1049  DEPS
1050    absl::random_internal_seed_material
1051    GTest::gmock
1052    GTest::gtest_main
1053)
1054
1055# Internal-only target, do not depend on directly.
1056absl_cc_test(
1057  NAME
1058    random_internal_pool_urbg_test
1059  SRCS
1060    "internal/pool_urbg_test.cc"
1061  COPTS
1062    ${ABSL_TEST_COPTS}
1063  LINKOPTS
1064    ${ABSL_DEFAULT_LINKOPTS}
1065  DEPS
1066    absl::random_internal_pool_urbg
1067    absl::span
1068    absl::type_traits
1069    GTest::gtest_main
1070)
1071
1072# Internal-only target, do not depend on directly.
1073absl_cc_test(
1074  NAME
1075    random_internal_pcg_engine_test
1076  SRCS
1077    "internal/pcg_engine_test.cc"
1078  COPTS
1079    ${ABSL_TEST_COPTS}
1080  LINKOPTS
1081    ${ABSL_DEFAULT_LINKOPTS}
1082  DEPS
1083    absl::random_internal_explicit_seed_seq
1084    absl::random_internal_pcg_engine
1085    absl::time
1086    GTest::gmock
1087    GTest::gtest_main
1088)
1089
1090# Internal-only target, do not depend on directly.
1091absl_cc_test(
1092  NAME
1093    random_internal_randen_engine_test
1094  SRCS
1095    "internal/randen_engine_test.cc"
1096  COPTS
1097    ${ABSL_TEST_COPTS}
1098  LINKOPTS
1099    ${ABSL_DEFAULT_LINKOPTS}
1100  DEPS
1101    absl::log
1102    absl::random_internal_explicit_seed_seq
1103    absl::random_internal_randen_engine
1104    absl::strings
1105    absl::time
1106    GTest::gmock
1107    GTest::gtest_main
1108)
1109
1110# Internal-only target, do not depend on directly.
1111absl_cc_test(
1112  NAME
1113    random_internal_randen_test
1114  SRCS
1115    "internal/randen_test.cc"
1116  COPTS
1117    ${ABSL_TEST_COPTS}
1118  LINKOPTS
1119    ${ABSL_DEFAULT_LINKOPTS}
1120  DEPS
1121    absl::random_internal_randen
1122    absl::type_traits
1123    GTest::gtest_main
1124)
1125
1126# Internal-only target, do not depend on directly.
1127absl_cc_test(
1128  NAME
1129    random_internal_randen_slow_test
1130  SRCS
1131    "internal/randen_slow_test.cc"
1132  COPTS
1133    ${ABSL_TEST_COPTS}
1134  LINKOPTS
1135    ${ABSL_DEFAULT_LINKOPTS}
1136  DEPS
1137    absl::endian
1138    absl::random_internal_randen_slow
1139    GTest::gtest_main
1140)
1141
1142# Internal-only target, do not depend on directly.
1143absl_cc_test(
1144  NAME
1145    random_internal_randen_hwaes_test
1146  SRCS
1147    "internal/randen_hwaes_test.cc"
1148  COPTS
1149    ${ABSL_TEST_COPTS}
1150  LINKOPTS
1151    ${ABSL_DEFAULT_LINKOPTS}
1152  DEPS
1153    absl::log
1154    absl::random_internal_platform
1155    absl::random_internal_randen_hwaes
1156    absl::random_internal_randen_hwaes_impl
1157    absl::str_format
1158    GTest::gmock
1159    GTest::gtest
1160)
1161
1162# Internal-only target, do not depend on directly.
1163absl_cc_library(
1164  NAME
1165    random_internal_uniform_helper
1166  HDRS
1167    "internal/uniform_helper.h"
1168  COPTS
1169    ${ABSL_DEFAULT_COPTS}
1170  LINKOPTS
1171    ${ABSL_DEFAULT_LINKOPTS}
1172  DEPS
1173    absl::config
1174    absl::random_internal_traits
1175    absl::type_traits
1176)
1177
1178# Internal-only target, do not depend on directly.
1179absl_cc_library(
1180  NAME
1181    random_internal_mock_validators
1182  HDRS
1183    "internal/mock_validators.h"
1184  COPTS
1185    ${ABSL_DEFAULT_COPTS}
1186  LINKOPTS
1187    ${ABSL_DEFAULT_LINKOPTS}
1188  DEPS
1189    absl::random_internal_iostream_state_saver
1190    absl::random_internal_uniform_helper
1191    absl::config
1192    absl::raw_logging_internal
1193    absl::strings
1194    absl::string_view
1195  TESTONLY
1196)
1197
1198# Internal-only target, do not depend on directly.
1199absl_cc_test(
1200  NAME
1201    random_internal_uniform_helper_test
1202  SRCS
1203    "internal/uniform_helper_test.cc"
1204  COPTS
1205    ${ABSL_TEST_COPTS}
1206  LINKOPTS
1207    ${ABSL_DEFAULT_LINKOPTS}
1208  DEPS
1209    absl::random_internal_uniform_helper
1210    GTest::gtest_main
1211    absl::int128
1212)
1213
1214# Internal-only target, do not depend on directly.
1215absl_cc_test(
1216  NAME
1217    random_internal_iostream_state_saver_test
1218  SRCS
1219    "internal/iostream_state_saver_test.cc"
1220  COPTS
1221    ${ABSL_TEST_COPTS}
1222  LINKOPTS
1223    ${ABSL_DEFAULT_LINKOPTS}
1224  DEPS
1225    absl::random_internal_iostream_state_saver
1226    GTest::gtest_main
1227)
1228
1229# Internal-only target, do not depend on directly.
1230absl_cc_test(
1231  NAME
1232    random_internal_wide_multiply_test
1233  SRCS
1234      internal/wide_multiply_test.cc
1235  COPTS
1236    ${ABSL_TEST_COPTS}
1237  LINKOPTS
1238    ${ABSL_DEFAULT_LINKOPTS}
1239  DEPS
1240    absl::random_internal_wide_multiply
1241    absl::bits
1242    absl::int128
1243    GTest::gmock
1244    GTest::gtest_main
1245)
1246