# Copyright 2024 Google LLC
#
# 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
#
#      http://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.

module(
    name = "fuzztest",
    version = "head",
    repo_name = "com_google_fuzztest",
)

bazel_dep(
    name = "abseil-cpp",
    version = "20240116.1",
    repo_name = "com_google_absl",
)

bazel_dep(
    name = "re2",
    version = "2024-04-01",
    repo_name = "com_googlesource_code_re2",
)

bazel_dep(
    name = "bazel_skylib",
    version = "1.7.1",
)

bazel_dep(
    name = "platforms",
    version = "0.0.10",
    repo_name = "platforms",
)

# Dev dependencies.
bazel_dep(
    name = "googletest",
    version = "1.14.0.bcr.1",
    dev_dependency = True,
    repo_name = "com_google_googletest",
)

bazel_dep(
    name = "nlohmann_json",
    version = "3.11.3",
    dev_dependency = True,
    repo_name = "com_nlohmann_json",
)

bazel_dep(
    name = "protobuf",
    version = "28.2",
    dev_dependency = True,
    repo_name = "com_google_protobuf",
)

bazel_dep(
    name = "rules_proto",
    version = "5.3.0-21.7",
    dev_dependency = True,
)

bazel_dep(
    name = "riegeli",
    version = "0.0.0-20240606-973b6f0",
    dev_dependency = True,
    repo_name = "com_google_riegeli",
)

bazel_dep(
    name = "antlr4-cpp-runtime",
    version = "4.12.0",
    dev_dependency = True,
    repo_name = "antlr_cpp",
)
