# 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("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
       name = "bazel_skylib",
          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",
                        ],
          sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728",
       )
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
bazel_skylib_workspace()

load("@bazel_skylib//lib:versions.bzl", "versions")

versions.check(minimum_bazel_version = "5.1.0")

local_repository(
    name = "rules_fuchsia",
    path = "third_party/sdk-integration/bazel_rules_fuchsia",
)

load(
    "@rules_fuchsia//fuchsia:deps.bzl",
    "fuchsia_clang_repository",
    "fuchsia_sdk_repository",
    "rules_fuchsia_deps",
)

rules_fuchsia_deps()

fuchsia_sdk_repository(
    name = "fuchsia_sdk",
    cipd_tag = "version:8.20220506.3.1",
    sha256 = {
        "linux": "438e70287d5c12fe1c1ad89dec4fb3528ba5c330bfd842c9f250eb6353271742",
        "mac": "502700a8092db397ddf1ec438a486d68e61afab4a63a718c0eb88306bbed144b",
        "linux_experimental": "85b25703b1eb5bcd879ce23215a8c21b27e1ed91a7388d8c13d9e6985cb50269",
        "mac_experimental": "7d68da9ced8afd09a1c64685ff63b0d7bd51b7f3caa90d439c4edff6e76b0935",
    },
    use_experimental = True,
)

register_toolchains("@fuchsia_sdk//:fuchsia_toolchain_sdk")

fuchsia_clang_repository(
    name = "fuchsia_clang",
    cipd_tag = "git_revision:ac5f7be6a8688955a282becf00eebc542238a86b",
    sdk_root_label = "@fuchsia_sdk",
    sha256 = {
        "linux": "e323780718344672cd78c756e7a417909b9c814e29fe0a48cd63f8ee0e06a53f",
        "mac": "0c3a7228089b0484b2756cdc202f5a1b9bb2ae4c7b36e8d6fd413fc521c2030b",
    },
)

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