# Copyright 2022 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

load(":workspace.bzl", "fuchsia_infra_workspace")
load("//cipd:defs.bzl", "cipd_repository")

fuchsia_infra_workspace()

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "bazel_skylib",
    sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
    ],
)

load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")

bazel_skylib_workspace()

cipd_repository(
    name = "fuchsia_sdk",
    cipd_bin = "@cipd_tool//:cipd",
    ensure_file = "//manifests:bazel_sdk.ensure",
)

local_repository(
    name = "fuchsia_infra",
    path = ".",
)

local_repository(
    name = "com_google_googletest",
    path = "third_party/googletest",
)

load(
    "@fuchsia_sdk//fuchsia:deps.bzl",
    "rules_fuchsia_deps",
)

rules_fuchsia_deps()

register_toolchains("@fuchsia_sdk//:fuchsia_toolchain_sdk")

load("@fuchsia_sdk//fuchsia:products.bzl", "fuchsia_products_repository")

fuchsia_products_repository(
    name = "fuchsia_products",
    cipd_bin = "@cipd_tool//:cipd",
    ensure_file = "//manifests:product_bundles.ensure",
)

load("@fuchsia_sdk//fuchsia:clang.bzl", "fuchsia_clang_repository")

fuchsia_clang_repository(
    name = "fuchsia_clang",
    cipd_bin = "@cipd_tool//:cipd",
    cipd_ensure_file = "//manifests:clang.ensure",
)

load("//infra:host_toolchains.bzl", "configure_fuchsia_clang_host_toolchain")

configure_fuchsia_clang_host_toolchain(name = "host_clang_toolchain")

load("@fuchsia_clang//:defs.bzl", "register_clang_toolchains")

register_clang_toolchains()

cipd_repository(
    name = "batchtester",
    build_file_content = """\
load("@bazel_skylib//rules:native_binary.bzl", "native_binary")

native_binary(
    name = "batchtester_bin",
    src = "batchtester",
    out = "batchtester",
    visibility = ["//visibility:public"],
)
""",
    cipd_bin = "@cipd_tool//:cipd",
    ensure_file = "//infra/tools:cipd_manifests/batchtester.ensure",
)

load("//shac:shac.bzl", "shac_deps")

shac_deps()
