# 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",
    # TODO(lszekeres): Remove and use default name.
    repo_name = "com_google_fuzztest",
)

bazel_dep(
    name = "rules_cc",
    version = "0.2.17",
)

cc_configure = use_extension("@rules_cc//cc:extensions.bzl", "cc_configure_extension")
use_repo(cc_configure, "local_config_cc")

bazel_dep(
    name = "rules_shell",
    version = "0.6.1",
)
bazel_dep(
    name = "abseil-cpp",
    version = "20260526.0",
)
bazel_dep(
    name = "re2",
    version = "2025-11-05.bcr.1",
)
bazel_dep(
    name = "bazel_skylib",
    version = "1.9.0",
)
bazel_dep(
    name = "platforms",
    version = "1.0.0",
)
bazel_dep(
    name = "flatbuffers",
    # When updating, check if we still need to override the versions of
    # rules_foreign_cc and aspect_bazel_lib below.
    version = "25.12.19",
)

# Needed to override problematic versions of the modules transitively inherited
# from flatbuffers. To check if this is still needed, comment out the overrides
# and run:
#
#   bazel mod all_paths rules_foreign_cc aspect_bazel_lib
#
# Verify that the version of rules_foreign_cc in the output is at least 0.13.0,
# and that the version of aspect_bazel_lib in the output is at least 2.19.1.
single_version_override(
    module_name = "rules_foreign_cc",
    version = "0.15.1",
)

single_version_override(
    module_name = "aspect_bazel_lib",
    version = "2.22.5",
)

# GoogleTest is not a dev dependency, because it's needed when FuzzTest is used
# with GoogleTest integration (e.g., googletest_adaptor). Note that the FuzzTest
# framework can be used without GoogleTest integration as well.
bazel_dep(
    name = "googletest",
    version = "1.17.0.bcr.2",
)

# Protobuf is not a dev dependency; it is needed for Bazel BUILD rules:
# https://github.com/protocolbuffers/protobuf/blob/main/bazel/proto_library.bzl
# https://github.com/protocolbuffers/protobuf/blob/main/bazel/cc_proto_library.bzl
bazel_dep(
    name = "protobuf",
    version = "33.5",
)
bazel_dep(
    name = "riegeli",
    version = "0.0.0-20250822-9f2744d",
    repo_name = "com_google_riegeli",
)

# Dev dependencies.
# These dependencies will be ignored if the current module is not the root
# module (https://bazel.build/rules/lib/globals/module#bazel_dep).
bazel_dep(
    name = "nlohmann_json",
    version = "3.12.0.bcr.1",
    dev_dependency = True,
)
bazel_dep(
    name = "antlr4-cpp-runtime",
    version = "4.13.2",
    dev_dependency = True,
    repo_name = "antlr_cpp",
)
