1*61046927SAndroid Build Coastguard Worker 2*61046927SAndroid Build Coastguard Worker# Copyright 2023 The Fuchsia Authors. All rights reserved. 3*61046927SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*61046927SAndroid Build Coastguard Worker# found in the LICENSE file. 5*61046927SAndroid Build Coastguard Worker# buildifier: disable=load-on-top 6*61046927SAndroid Build Coastguard Workerload("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 7*61046927SAndroid Build Coastguard Worker# Set up bazel skylib and its dependencies 8*61046927SAndroid Build Coastguard Workerhttp_archive( 9*61046927SAndroid Build Coastguard Worker name = "bazel_skylib", 10*61046927SAndroid Build Coastguard Worker sha256 = "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728", 11*61046927SAndroid Build Coastguard Worker urls = [ 12*61046927SAndroid Build Coastguard Worker "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", 13*61046927SAndroid Build Coastguard Worker "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz", 14*61046927SAndroid Build Coastguard Worker ], 15*61046927SAndroid Build Coastguard Worker) 16*61046927SAndroid Build Coastguard Workerload("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") 17*61046927SAndroid Build Coastguard Workerbazel_skylib_workspace() 18*61046927SAndroid Build Coastguard Worker# The fuchsia_infra repository provides rules which allow us to work inside of 19*61046927SAndroid Build Coastguard Worker# fuchsia's infrastructure. 20*61046927SAndroid Build Coastguard Workerlocal_repository( 21*61046927SAndroid Build Coastguard Worker name = "fuchsia_infra", 22*61046927SAndroid Build Coastguard Worker path = "fuchsia-build/third_party/fuchsia-infra-bazel-rules", 23*61046927SAndroid Build Coastguard Worker) 24*61046927SAndroid Build Coastguard Workerload("@fuchsia_infra//:workspace.bzl", "fuchsia_infra_workspace") 25*61046927SAndroid Build Coastguard Workerload("@fuchsia_infra//cipd:defs.bzl", "cipd_repository", "cipd_tool_repository") 26*61046927SAndroid Build Coastguard Workerfuchsia_infra_workspace() 27*61046927SAndroid Build Coastguard Worker# Create a common cipd binary which will be used to download prebuilts 28*61046927SAndroid Build Coastguard Workercipd_tool_repository( 29*61046927SAndroid Build Coastguard Worker name = "cipd_tool", 30*61046927SAndroid Build Coastguard Worker) 31*61046927SAndroid Build Coastguard Worker# Fetch the Fuchsia SDK and register it as a repostiory. The version that is 32*61046927SAndroid Build Coastguard Worker# used is stored in the manifests/bazel_sdk.ensure file so it can be updated by 33*61046927SAndroid Build Coastguard Worker# our autoroller infrastructure. When the version changes bazel will fetch the 34*61046927SAndroid Build Coastguard Worker# new prebuilts. 35*61046927SAndroid Build Coastguard Workercipd_repository( 36*61046927SAndroid Build Coastguard Worker name = "fuchsia_sdk", 37*61046927SAndroid Build Coastguard Worker cipd_bin = "@cipd_tool//:cipd", 38*61046927SAndroid Build Coastguard Worker ensure_file = "//fuchsia-build/manifests:bazel_sdk.ensure", 39*61046927SAndroid Build Coastguard Worker) 40*61046927SAndroid Build Coastguard Workerload( 41*61046927SAndroid Build Coastguard Worker "@fuchsia_sdk//fuchsia:deps.bzl", 42*61046927SAndroid Build Coastguard Worker "rules_fuchsia_deps", 43*61046927SAndroid Build Coastguard Worker) 44*61046927SAndroid Build Coastguard Workerrules_fuchsia_deps() 45*61046927SAndroid Build Coastguard Worker# The fuchsia toolchain contains tools like ffx and fidlc. 46*61046927SAndroid Build Coastguard Workerregister_toolchains("@fuchsia_sdk//:fuchsia_toolchain_sdk") 47*61046927SAndroid Build Coastguard Workerload( 48*61046927SAndroid Build Coastguard Worker "@fuchsia_sdk//fuchsia:products.bzl", 49*61046927SAndroid Build Coastguard Worker "fuchsia_products_repository", 50*61046927SAndroid Build Coastguard Worker) 51*61046927SAndroid Build Coastguard Workerfuchsia_products_repository( 52*61046927SAndroid Build Coastguard Worker name = "fuchsia_products", 53*61046927SAndroid Build Coastguard Worker cipd_bin = "@cipd_tool//:cipd", 54*61046927SAndroid Build Coastguard Worker ensure_file = "//fuchsia-build/manifests:product_bundles.ensure", 55*61046927SAndroid Build Coastguard Worker) 56*61046927SAndroid Build Coastguard Workerload( 57*61046927SAndroid Build Coastguard Worker "@fuchsia_sdk//fuchsia:clang.bzl", 58*61046927SAndroid Build Coastguard Worker "fuchsia_clang_repository", 59*61046927SAndroid Build Coastguard Worker) 60*61046927SAndroid Build Coastguard Worker# Set up our clang repository. 61*61046927SAndroid Build Coastguard Workerfuchsia_clang_repository( 62*61046927SAndroid Build Coastguard Worker name = "fuchsia_clang", 63*61046927SAndroid Build Coastguard Worker cipd_bin = "@cipd_tool//:cipd", 64*61046927SAndroid Build Coastguard Worker cipd_ensure_file = "//fuchsia-build/manifests:clang.ensure", 65*61046927SAndroid Build Coastguard Worker) 66*61046927SAndroid Build Coastguard Workerload("@fuchsia_clang//:defs.bzl", "register_clang_toolchains") 67*61046927SAndroid Build Coastguard Worker# Register a clang toolchain which will be used to compile fuchsia targets 68*61046927SAndroid Build Coastguard Workerregister_clang_toolchains() 69*61046927SAndroid Build Coastguard Workerload("@fuchsia_infra//infra:host_toolchains.bzl", "configure_fuchsia_clang_host_toolchain") 70*61046927SAndroid Build Coastguard Worker# Configure a host toolchain for local execution. This is not used to compile 71*61046927SAndroid Build Coastguard Worker# fuchsia targets but is made available so we don't try to access the host gcc 72*61046927SAndroid Build Coastguard Worker# which is not available in infrastructure builds. This call must happen after 73*61046927SAndroid Build Coastguard Worker# you create a fuchsia_clang repository. 74*61046927SAndroid Build Coastguard Workerconfigure_fuchsia_clang_host_toolchain(name = "host_clang_toolchain") 75*61046927SAndroid Build Coastguard Worker# gTest. 76*61046927SAndroid Build Coastguard Workerlocal_repository( 77*61046927SAndroid Build Coastguard Worker name = "com_google_googletest", 78*61046927SAndroid Build Coastguard Worker path = "third_party/googletest", 79*61046927SAndroid Build Coastguard Worker) 80*61046927SAndroid Build Coastguard Workerlocal_repository( 81*61046927SAndroid Build Coastguard Worker name = "zlib", 82*61046927SAndroid Build Coastguard Worker path = "fuchsia-build/third_party/zlib-1.3.1", 83*61046927SAndroid Build Coastguard Worker) 84