Files
carbon-lang/core/BUILD
T
Lucile Rose Nihlen 625f2ca629 precompile and cache Carbon prelude (#7432)
Refactors the link driver to automatically compile and cache the carbon
prelude for use in linking.

Implements a `carbon_library` rule for compiling the Core library
dependencies in the examples.
2026-07-16 18:02:14 +00:00

72 lines
1.6 KiB
Python

# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
# Exceptions. See /LICENSE for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
load("//bazel/carbon_rules:defs.bzl", "carbon_library")
load("//bazel/manifest:defs.bzl", "manifest")
# Raw prelude files.
filegroup(
name = "prelude_files",
srcs = ["prelude.carbon"] + glob(["prelude/**/*.carbon"]),
visibility = ["//visibility:public"],
)
# A list of prelude inputs.
# This is consumed by //toolchain/base:install_paths.
manifest(
name = "prelude_manifest.txt",
srcs = [":prelude_files"],
strip_package_dir = True,
)
# All files for the toolchain install.
filegroup(
name = "prelude",
srcs = [
":prelude_files",
":prelude_manifest.txt",
],
visibility = ["//visibility:public"],
)
filegroup(
name = "core_library_files",
srcs = glob(
include = ["**/*.carbon"],
exclude = [
"prelude.carbon",
"prelude/**",
],
),
visibility = ["//visibility:public"],
)
manifest(
name = "core_library_manifest.txt",
srcs = [":core_library_files"],
strip_package_dir = True,
)
filegroup(
name = "core_library",
srcs = [
":core_library_files",
":core_library_manifest.txt",
],
visibility = ["//visibility:public"],
)
carbon_library(
name = "io",
api = "io.carbon",
impls = ["io.impl.carbon"],
visibility = ["//visibility:public"],
)
carbon_library(
name = "range",
api = "range.carbon",
visibility = ["//visibility:public"],
)