# Auto-generated by @//cmake:make_dependencies
#
# This file contains lists of external dependencies based on our Bazel
# config. It should be included from a hand-written CMake file that uses
# them.
#
# Changes to this file will be overwritten based on Bazel definitions.

if(${CMAKE_VERSION} VERSION_GREATER 3.16 OR ${CMAKE_VERSION} VERSION_EQUAL 3.16)
  include_guard()
endif()

set(apple_support-version "2.3.0")
set(rules_proto-version "7.1.0")
set(abseil-cpp-version "20250512.1")
set(rules_cc-version "0.2.18")
set(zlib-version "1.3.1")
set(bazel_skylib-version "1.9.0")
set(jsoncpp-version "1.9.6")
set(rules_java-version "8.6.1")
set(rules_jvm_external-version "6.7")
set(rules_kotlin-version "2.3.20")
set(rules_license-version "1.0.0")
set(rules_pkg-version "1.0.1")
set(rules_python-version "2.3.0")
set(rules_rust-version "0.69.0")
set(rules_ruby-version "0.20.1")
set(rules_fuzzing-version "0.5.3")
set(rules_shell-version "0.6.1")
set(platforms-version "0.0.11")
set(re2-version "2024-07-02")
set(googletest-version "1.17.0")
set(rules_testing-version "0.9.0")
set(abseil-py-version "2.1.0")
set(lua-version "5.4.6")
set(googleapis-version "0.0.0-20240819-fe8ba054a")
set(google_benchmark-version "1.9.2")
set(com_google_protobuf_v25-version "25.0")
set(jq.bzl-version "0.6.1")


