83 lines
3.1 KiB
Text
83 lines
3.1 KiB
Text
|
|
# Copyright 2023 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")
|
|
# Set up bazel skylib and its dependencies
|
|
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()
|
|
# The fuchsia_infra repository provides rules which allow us to work inside of
|
|
# fuchsia's infrastructure.
|
|
local_repository(
|
|
name = "fuchsia_infra",
|
|
path = "fuchsia-build/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")
|
|
fuchsia_infra_workspace()
|
|
# Create a common cipd binary which will be used to download prebuilts
|
|
cipd_tool_repository(
|
|
name = "cipd_tool",
|
|
)
|
|
# Fetch the Fuchsia SDK and register it as a repostiory. The version that is
|
|
# used is stored in the manifests/bazel_sdk.ensure file so it can be updated by
|
|
# our autoroller infrastructure. When the version changes bazel will fetch the
|
|
# new prebuilts.
|
|
cipd_repository(
|
|
name = "fuchsia_sdk",
|
|
cipd_bin = "@cipd_tool//:cipd",
|
|
ensure_file = "//fuchsia-build/manifests:bazel_sdk.ensure",
|
|
)
|
|
load(
|
|
"@fuchsia_sdk//fuchsia:deps.bzl",
|
|
"rules_fuchsia_deps",
|
|
)
|
|
rules_fuchsia_deps()
|
|
# The fuchsia toolchain contains tools like ffx and fidlc.
|
|
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 = "//fuchsia-build/manifests:product_bundles.ensure",
|
|
)
|
|
load(
|
|
"@fuchsia_sdk//fuchsia:clang.bzl",
|
|
"fuchsia_clang_repository",
|
|
)
|
|
# Set up our clang repository.
|
|
fuchsia_clang_repository(
|
|
name = "fuchsia_clang",
|
|
cipd_bin = "@cipd_tool//:cipd",
|
|
cipd_ensure_file = "//fuchsia-build/manifests:clang.ensure",
|
|
)
|
|
load("@fuchsia_clang//:defs.bzl", "register_clang_toolchains")
|
|
# Register a clang toolchain which will be used to compile fuchsia targets
|
|
register_clang_toolchains()
|
|
load("@fuchsia_infra//infra:host_toolchains.bzl", "configure_fuchsia_clang_host_toolchain")
|
|
# Configure a host toolchain for local execution. This is not used to compile
|
|
# fuchsia targets but is made available so we don't try to access the host gcc
|
|
# which is not available in infrastructure builds. This call must happen after
|
|
# you create a fuchsia_clang repository.
|
|
configure_fuchsia_clang_host_toolchain(name = "host_clang_toolchain")
|
|
# gTest.
|
|
local_repository(
|
|
name = "com_google_googletest",
|
|
path = "third_party/googletest",
|
|
)
|
|
local_repository(
|
|
name = "zlib",
|
|
path = "fuchsia-build/third_party/zlib-1.3.1",
|
|
)
|