#Copyright 2024 Ant Group Co., Ltd.
#
#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.

############################################################################## #
#Bazel now uses Bzlmod by default to manage external dependencies.
#Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
#
#For more details, please check https: // github.com/bazelbuild/bazel/issues/18958
############################################################################## #

module(
    name = "kcal_python",
    version = "0.10.0.dev20251211",
    compatibility_level = 1,
)

bazel_dep(name = "rules_cc", version = "0.0.12")
bazel_dep(name = "rules_foreign_cc", version = "0.15.0")
single_version_override(
    module_name = "rules_foreign_cc",
    patch_strip = 1,
    patches =
        [
            "//bazel/patches:rules_foreign_cc.patch",
        ],
    version = "0.15.0",
)

bazel_dep(name = "yacl", version = "0.4.5b12-nightly-20251024")
bazel_dep(name = "brpc", version = "1.11.0-20241212-282bc90")
single_version_override(
    module_name = "brpc",
    patch_strip = 1,
    patches =
        [
            "//bazel/patches:brpc.patch",
        ],
    version = "1.11.0-20241212-282bc90",
)

bazel_dep(name = "pybind11_bazel", version = "3.0.1")
bazel_dep(name = "rules_python", version = "1.2.0")
bazel_dep(name = "openssl", version = "3.3.2.bcr.1")
single_version_override(
    module_name = "openssl",
    version = "3.3.2.bcr.1",
)

bazel_dep(name = "kcal_middleware")
local_path_override(
    module_name = "kcal_middleware",
    path = "../middleware",
)

DEFAULT_PYTHON_VERSION = "3.10"

SUPPORTED_PYTHON_VERSIONS = [
    # "3.9",
    "3.10",
    "3.11",
    "3.12",
]

python = use_extension("@rules_python//python/extensions:python.bzl", "python")

[
    python.toolchain(
        ignore_root_user_error = True,
        is_default = python_version == DEFAULT_PYTHON_VERSION,
        python_version = python_version,
    )
    for python_version in SUPPORTED_PYTHON_VERSIONS
]

use_repo(python, "python_versions")

#test
bazel_dep(name = "googletest", version = "1.15.2", dev_dependency = True)
bazel_dep(name = "google_benchmark", version = "1.8.5", dev_dependency = True)