# 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.

# buildifier: disable=load-on-top

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()

local_repository(
    name = "platforms",
    path = "third_party/platforms",
)

load("@platforms//host:extension.bzl", "host_platform_repo")

host_platform_repo(
    name = "host_platform",
)

local_repository(
    name = "rules_license",
    path = "third_party/rules_license",
)

local_repository(
    name = "rules_python",
    path = "third_party/rules_python",
)

local_repository(
    name = "fuchsia_infra",
    path = "third_party/fuchsia-infra-bazel-rules",
)

load("@fuchsia_infra//:workspace.bzl", "fuchsia_infra_workspace")
load("@fuchsia_infra//cipd:defs.bzl", "cipd_repository", "cipd_tool_repository")
load("@fuchsia_infra//infra:host_toolchains.bzl", "configure_fuchsia_clang_host_toolchain")
load("@fuchsia_infra//shac:shac.bzl", "shac_deps")

fuchsia_infra_workspace()

shac_deps()

cipd_tool_repository(
    name = "cipd_tool",
)

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

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

load("@rules_fuchsia//fuchsia:deps.bzl", "register_fuchsia_sdk_toolchain")

register_fuchsia_sdk_toolchain()

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

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

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

register_clang_toolchains()

configure_fuchsia_clang_host_toolchain(name = "host_clang_toolchain")

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