#
# Copyright 2019 The Abseil Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

absl_cc_library(
  NAME
    random_random
  HDRS
    "random.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_distributions
    absl::random_internal_nonsecure_base
    absl::random_internal_pcg_engine
    absl::random_internal_pool_urbg
    absl::random_internal_randen_engine
    absl::random_seed_sequences
)

absl_cc_library(
  NAME
    random_distributions
  SRCS
    "discrete_distribution.cc"
    "gaussian_distribution.cc"
  HDRS
    "bernoulli_distribution.h"
    "beta_distribution.h"
    "discrete_distribution.h"
    "distribution_format_traits.h"
    "distributions.h"
    "exponential_distribution.h"
    "gaussian_distribution.h"
    "log_uniform_int_distribution.h"
    "poisson_distribution.h"
    "uniform_int_distribution.h"
    "uniform_real_distribution.h"
    "zipf_distribution.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base_internal
    absl::core_headers
    absl::random_internal_distribution_impl
    absl::random_internal_distributions
    absl::random_internal_fast_uniform_bits
    absl::random_internal_fastmath
    absl::random_internal_iostream_state_saver
    absl::random_internal_traits
    absl::random_internal_uniform_helper
    absl::strings
    absl::span
    absl::type_traits
)

absl_cc_library(
  NAME
    random_seed_gen_exception
  SRCS
    "seed_gen_exception.cc"
  HDRS
    "seed_gen_exception.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
    ${ABSL_EXCEPTIONS_FLAG}
  LINKOPTS
    ${ABSL_EXCEPTIONS_FLAG_LINKOPTS}
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::config
)

absl_cc_library(
  NAME
    random_seed_sequences
  SRCS
    "seed_sequences.cc"
  HDRS
    "seed_sequences.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::inlined_vector
    absl::random_internal_nonsecure_base
    absl::random_internal_pool_urbg
    absl::random_internal_salted_seed_seq
    absl::random_internal_seed_material
    absl::random_seed_gen_exception
    absl::span
)

absl_cc_test(
  NAME
    random_bernoulli_distribution_test
  SRCS
    "bernoulli_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_distributions
    absl::random_random
    absl::random_internal_sequence_urbg
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_beta_distribution_test
  SRCS
    "beta_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_distributions
    absl::random_random
    absl::base
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::strings
    absl::str_format
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_distributions_test
  SRCS
    "distributions_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_distributions
    absl::random_random
    absl::random_internal_distribution_test_util
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_generators_test
  SRCS
    "generators_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
    absl::random_distributions
    absl::random_random
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_log_uniform_int_distribution_test
  SRCS
    "log_uniform_int_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
    absl::base
    absl::core_headers
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    absl::str_format
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_discrete_distribution_test
  SRCS
    "discrete_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_poisson_distribution_test
  SRCS
    "poisson_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_distributions
    absl::random_random
    absl::base
    absl::core_headers
    absl::flat_hash_map
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::strings
    absl::str_format
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_exponential_distribution_test
  SRCS
    "exponential_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::core_headers
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    absl::str_format
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_gaussian_distribution_test
  SRCS
    "gaussian_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::core_headers
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    absl::str_format
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_uniform_int_distribution_test
  SRCS
    "uniform_int_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_uniform_real_distribution_test
  SRCS
    "uniform_real_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_zipf_distribution_test
  SRCS
    "zipf_distribution_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_distributions
    absl::random_internal_distribution_test_util
    absl::random_internal_sequence_urbg
    absl::random_random
    absl::strings
    gmock
    gtest_main
)

absl_cc_test(
  NAME
    random_examples_test
  SRCS
    "examples_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_random
    gtest_main
)

absl_cc_test(
  NAME
    random_seed_sequences_test
  SRCS
    "seed_sequences_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_seed_sequences
    absl::random_internal_nonsecure_base
    absl::random_random
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_traits
  HDRS
    "internal/traits.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::config
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_distribution_caller
  HDRS
    "internal/distribution_caller.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_distributions
  HDRS
    "internal/distributions.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_distribution_caller
    absl::random_internal_fast_uniform_bits
    absl::random_internal_fastmath
    absl::random_internal_traits
    absl::random_internal_uniform_helper
    absl::span
    absl::strings
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_fast_uniform_bits
  HDRS
    "internal/fast_uniform_bits.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_seed_material
  SRCS
    "internal/seed_material.cc"
  HDRS
    "internal/seed_material.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::core_headers
    absl::optional
    absl::random_internal_fast_uniform_bits
    absl::span
    absl::strings
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_pool_urbg
  SRCS
    "internal/pool_urbg.cc"
  HDRS
    "internal/pool_urbg.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::config
    absl::core_headers
    absl::endian
    absl::random_internal_randen
    absl::random_internal_seed_material
    absl::random_internal_traits
    absl::random_seed_gen_exception
    absl::span
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_explicit_seed_seq
  HDRS
      "internal/random_internal_explicit_seed_seq.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  TESTONLY
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_sequence_urbg
  HDRS
    "internal/sequence_urbg.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  TESTONLY
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_salted_seed_seq
  HDRS
    "internal/salted_seed_seq.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::inlined_vector
    absl::optional
    absl::span
    absl::random_internal_seed_material
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_iostream_state_saver
  HDRS
    "internal/iostream_state_saver.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::int128
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_distribution_impl
  HDRS
    "internal/distribution_impl.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::bits
    absl::config
    absl::int128
    absl::random_internal_fastmath
    absl::random_internal_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_fastmath
  HDRS
    "internal/fastmath.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::bits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_nonsecure_base
  HDRS
    "internal/nonsecure_base.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::core_headers
    absl::optional
    absl::random_internal_pool_urbg
    absl::random_internal_salted_seed_seq
    absl::random_internal_seed_material
    absl::span
    absl::strings
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_pcg_engine
  HDRS
    "internal/pcg_engine.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::config
    absl::int128
    absl::random_internal_fastmath
    absl::random_internal_iostream_state_saver
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_randen_engine
  HDRS
    "internal/randen_engine.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_iostream_state_saver
    absl::random_internal_randen
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_platform
  HDRS
    "internal/randen_traits.h"
    "internal/randen-keys.inc"
    "internal/platform.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_randen
  SRCS
    "internal/randen.cc"
  HDRS
    "internal/randen.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_internal_platform
    absl::random_internal_randen_hwaes
    absl::random_internal_randen_slow
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_randen_slow
  SRCS
    "internal/randen_slow.cc"
  HDRS
    "internal/randen_slow.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_platform
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_randen_hwaes
  SRCS
    "internal/randen_detect.cc"
  HDRS
    "internal/randen_detect.h"
    "internal/randen_hwaes.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
    ${ABSL_RANDOM_RANDEN_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_platform
    absl::random_internal_randen_hwaes_impl
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_randen_hwaes_impl
  SRCS
    "internal/randen_hwaes.cc"
    "internal/randen_hwaes.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
    ${ABSL_RANDOM_RANDEN_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_platform
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_distribution_test_util
  SRCS
    "internal/chi_square.cc"
    "internal/distribution_test_util.cc"
  HDRS
    "internal/chi_square.h"
    "internal/distribution_test_util.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::core_headers
    absl::strings
    absl::str_format
    absl::span
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_traits_test
  SRCS
    "internal/traits_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_traits
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_distribution_impl_test
  SRCS
    "internal/distribution_impl_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::bits
    absl::flags
    absl::int128
    absl::random_internal_distribution_impl
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_distribution_test_util_test
  SRCS
    "internal/distribution_test_util_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_distribution_test_util
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_fastmath_test
  SRCS
    "internal/fastmath_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_fastmath
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_explicit_seed_seq_test
  SRCS
    "internal/explicit_seed_seq_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_explicit_seed_seq
    absl::random_seed_sequences
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_salted_seed_seq_test
  SRCS
    "internal/salted_seed_seq_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_salted_seed_seq
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_chi_square_test
  SRCS
    "internal/chi_square_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::core_headers
    absl::random_internal_distribution_test_util
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_fast_uniform_bits_test
  SRCS
    "internal/fast_uniform_bits_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_fast_uniform_bits
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_nonsecure_base_test
  SRCS
    "internal/nonsecure_base_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_nonsecure_base
    absl::random_random
    absl::random_distributions
    absl::random_seed_sequences
    absl::strings
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_seed_material_test
  SRCS
    "internal/seed_material_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_seed_material
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_pool_urbg_test
  SRCS
    "internal/pool_urbg_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_pool_urbg
    absl::span
    absl::type_traits
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_pcg_engine_test
  SRCS
    "internal/pcg_engine_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_explicit_seed_seq
    absl::random_internal_pcg_engine
    absl::time
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_randen_engine_test
  SRCS
    "internal/randen_engine_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::base
    absl::random_internal_explicit_seed_seq
    absl::random_internal_randen_engine
    absl::strings
    absl::time
    gmock
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_randen_test
  SRCS
    "internal/randen_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_randen
    absl::type_traits
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_randen_slow_test
  SRCS
    "internal/randen_slow_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_randen_slow
    gtest_main
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_randen_hwaes_test
  SRCS
    "internal/randen_hwaes_test.cc"
  COPTS
    ${ABSL_TEST_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_platform
    absl::random_internal_randen_hwaes
    absl::random_internal_randen_hwaes_impl
    absl::base
    absl::str_format
    gmock
    gtest
)

# Internal-only target, do not depend on directly.
absl_cc_library(
  NAME
    random_internal_uniform_helper
  HDRS
    "internal/uniform_helper.h"
  COPTS
    ${ABSL_DEFAULT_COPTS}
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::core_headers
    absl::random_internal_distribution_impl
    absl::random_internal_fast_uniform_bits
    absl::random_internal_iostream_state_saver
    absl::random_internal_traits
    absl::type_traits
)

# Internal-only target, do not depend on directly.
absl_cc_test(
  NAME
    random_internal_iostream_state_saver_test
  SRCS
    "internal/iostream_state_saver_test.cc"
  LINKOPTS
    ${ABSL_DEFAULT_LINKOPTS}
  DEPS
    absl::random_internal_iostream_state_saver
    gtest_main
)
