| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- # 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/cc_rules:defs.bzl", "cc_binary", "cc_library", "cc_test")
- load("llvm_tools.bzl", "LLVM_MAIN_TOOLS", "generate_llvm_tools_def")
- load("runtime_sources.bzl", "generate_runtime_sources_cc_library")
- package(default_visibility = ["//visibility:public"])
- cc_library(
- name = "block_value_store",
- hdrs = ["block_value_store.h"],
- deps = [
- ":mem_usage",
- ":value_store",
- ":yaml",
- "//common:check",
- "//common:hashing",
- "//common:set",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "canonical_value_store",
- hdrs = ["canonical_value_store.h"],
- deps = [
- ":mem_usage",
- ":value_store",
- ":value_store_types",
- ":yaml",
- "//common:hashtable_key_context",
- "//common:set",
- ],
- )
- cc_test(
- name = "canonical_value_store_test",
- size = "small",
- srcs = ["canonical_value_store_test.cpp"],
- deps = [
- ":canonical_value_store",
- ":value_ids",
- "//testing/base:gtest_main",
- "@googletest//:gtest",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "clang_invocation",
- srcs = ["clang_invocation.cpp"],
- hdrs = ["clang_invocation.h"],
- deps = [
- "//common:check",
- "//toolchain/diagnostics:diagnostic_emitter",
- "@llvm-project//clang:basic",
- "@llvm-project//clang:frontend",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "fixed_size_value_store",
- hdrs = ["fixed_size_value_store.h"],
- deps = [
- ":mem_usage",
- ":value_store",
- ":value_store_types",
- "//common:check",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "for_each_macro",
- hdrs = ["for_each_macro.h"],
- deps = [
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "index_base",
- hdrs = ["index_base.h"],
- deps = [
- "//common:ostream",
- "@llvm-project//llvm:Support",
- ],
- )
- # A library for computing install paths for the toolchain. Note that this
- # library does *not* include the data itself, as that would form a dependency
- # cycle. Each part of the toolchain should add the narrow data file groups to
- # their data dependencies, and then use this library to locate them.
- cc_library(
- name = "install_paths",
- srcs = ["install_paths.cpp"],
- hdrs = ["install_paths.h"],
- deps = [
- ":llvm_tools",
- "//common:check",
- "//common:error",
- "//common:filesystem",
- "@bazel_tools//tools/cpp/runfiles",
- "@llvm-project//clang:basic",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_binary(
- name = "test_binary",
- testonly = 1,
- srcs = ["test_binary.cpp"],
- data = ["//toolchain/install:install_data"],
- )
- cc_test(
- name = "install_paths_test",
- size = "small",
- srcs = ["install_paths_test.cpp"],
- data = [
- ":test_binary",
- "//toolchain/install:install_data",
- ],
- deps = [
- ":install_paths",
- "//common:check",
- "//common:error_test_helpers",
- "//common:filesystem",
- "//common:ostream",
- "//testing/base:global_exe_path",
- "//testing/base:gtest_main",
- "@bazel_tools//tools/cpp/runfiles",
- "@googletest//:gtest",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "install_paths_test_helpers",
- testonly = 1,
- srcs = ["install_paths_test_helpers.cpp"],
- hdrs = ["install_paths_test_helpers.h"],
- deps = [
- ":install_paths",
- "//testing/base:global_exe_path",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "kind_switch",
- hdrs = ["kind_switch.h"],
- deps = [
- ":for_each_macro",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_test(
- name = "kind_switch_test",
- size = "small",
- srcs = ["kind_switch_test.cpp"],
- deps = [
- ":kind_switch",
- "//common:raw_string_ostream",
- "//testing/base:gtest_main",
- "@googletest//:gtest",
- ],
- )
- cc_library(
- name = "mem_usage",
- hdrs = ["mem_usage.h"],
- deps = [
- ":yaml",
- "//common:map",
- "//common:set",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "relational_value_store",
- hdrs = ["relational_value_store.h"],
- deps = [
- ":value_store",
- ":value_store_types",
- "//common:check",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "timings",
- hdrs = ["timings.h"],
- deps = [
- ":yaml",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "value_ids",
- hdrs = ["value_ids.h"],
- deps = [
- ":index_base",
- "//common:check",
- "//common:ostream",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "value_store",
- hdrs = ["value_store.h"],
- deps = [
- ":mem_usage",
- ":value_store_types",
- ":yaml",
- "//common:check",
- "//common:hashtable_key_context",
- "//common:ostream",
- "//common:set",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_test(
- name = "value_store_test",
- size = "small",
- srcs = ["value_store_test.cpp"],
- deps = [
- ":value_ids",
- ":value_store",
- "//common:raw_string_ostream",
- "//testing/base:gtest_main",
- "@googletest//:gtest",
- ],
- )
- cc_library(
- name = "value_store_types",
- hdrs = ["value_store_types.h"],
- deps = [
- "@llvm-project//llvm:Support",
- ],
- )
- cc_library(
- name = "int",
- srcs = ["int.cpp"],
- hdrs = ["int.h"],
- deps = [
- ":canonical_value_store",
- ":index_base",
- ":mem_usage",
- ":value_store",
- ":yaml",
- "//common:check",
- "//common:hashtable_key_context",
- "//common:ostream",
- "//common:set",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_test(
- name = "int_test",
- size = "small",
- srcs = ["int_test.cpp"],
- deps = [
- ":int",
- "//common:raw_string_ostream",
- "//testing/base:gtest_main",
- "//toolchain/testing:yaml_test_helpers",
- "@googletest//:gtest",
- ],
- )
- generate_llvm_tools_def(
- name = "llvm_tools_def",
- out = "llvm_tools.def",
- )
- config_setting(
- name = "is_macos",
- constraint_values = ["@platforms//os:macos"],
- )
- cc_library(
- name = "llvm_tools",
- srcs = ["llvm_tools.cpp"],
- hdrs = ["llvm_tools.h"],
- linkopts = select({
- # TODO: This should be moved upstream to LLVM's tool libraries that
- # require it.
- ":is_macos": [
- "-framework",
- "CoreFoundation",
- ],
- "//conditions:default": [],
- }),
- deps = [
- ":llvm_tools_def",
- "//common:command_line",
- "//common:enum_base",
- "@llvm-project//llvm:Support",
- ] + [info.lib for info in LLVM_MAIN_TOOLS.values()],
- )
- generate_runtime_sources_cc_library(name = "runtime_sources")
- cc_library(
- name = "shared_value_stores",
- hdrs = ["shared_value_stores.h"],
- deps = [
- ":canonical_value_store",
- ":int",
- ":mem_usage",
- ":value_ids",
- ":value_store",
- ":yaml",
- "@llvm-project//llvm:Support",
- ],
- )
- cc_test(
- name = "shared_value_stores_test",
- size = "small",
- srcs = ["shared_value_stores_test.cpp"],
- deps = [
- ":shared_value_stores",
- "//common:raw_string_ostream",
- "//testing/base:gtest_main",
- "//toolchain/testing:yaml_test_helpers",
- "@googletest//:gtest",
- ],
- )
- cc_library(
- name = "yaml",
- hdrs = ["yaml.h"],
- deps = [
- "//common:check",
- "//common:ostream",
- "@llvm-project//llvm:Support",
- ],
- )
|