Files
carbon-lang/common/BUILD
T
Jon Ross-Perkins 53af8f04b2 Provide a Printable CRTP parent to replace HasPrintable templates. (#3166)
With the toolchain splitting namespaces, ostream.h's `operator<<`
templates aren't reliably found with name lookup, likely due to the loss
of associated namespaces (zygoloid commented on this at
https://github.com/carbon-language/carbon-lang/pull/3161#discussion_r1307941999).
This is especially a barrier to moving the lex files into `Carbon::Lex`;
versus other parts of the toolchain, they contain more printable types
which are used cross-namespace, including `Carbon::Testing`. As a
consequence, I'm looking at migrating ostream.h to a more reliable
approach that doesn't rely as much on everything being in the `Carbon`
namespace.
2023-08-30 21:32:19 +00:00

175 lines
3.4 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("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "bazel_working_dir",
hdrs = ["bazel_working_dir.h"],
deps = [
"@llvm-project//llvm:Support",
],
)
cc_library(
name = "command_line",
srcs = ["command_line.cpp"],
hdrs = ["command_line.h"],
deps = [
":check",
":ostream",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "command_line_test",
srcs = ["command_line_test.cpp"],
deps = [
":command_line",
"//testing/base:gtest_main",
"//testing/base:test_raw_ostream",
"@com_google_googletest//:gtest",
"@llvm-project//llvm:Support",
],
)
cc_library(
name = "check",
srcs = [
"check_internal.cpp",
"check_internal.h",
],
hdrs = ["check.h"],
deps = [
":ostream",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "check_test",
srcs = ["check_test.cpp"],
deps = [
":check",
"//testing/base:gtest_main",
"@com_google_googletest//:gtest",
],
)
cc_library(
name = "enum_base",
hdrs = ["enum_base.h"],
deps = [
"//common:ostream",
"@llvm-project//llvm:Support",
],
)
cc_library(
name = "enum_base_test_def",
textual_hdrs = ["enum_base_test.def"],
)
cc_test(
name = "enum_base_test",
srcs = ["enum_base_test.cpp"],
deps = [
":enum_base",
":enum_base_test_def",
"//testing/base:gtest_main",
"//testing/base:test_raw_ostream",
"@com_google_googletest//:gtest",
],
)
cc_library(
name = "error",
hdrs = ["error.h"],
deps = [
":check",
":ostream",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "error_test",
srcs = ["error_test.cpp"],
deps = [
":error",
"//testing/base:gtest_main",
"//testing/base:test_raw_ostream",
"@com_google_googletest//:gtest",
],
)
cc_library(
name = "indirect_value",
hdrs = ["indirect_value.h"],
)
cc_test(
name = "indirect_value_test",
srcs = ["indirect_value_test.cpp"],
deps = [
":indirect_value",
"//testing/base:gtest_main",
"@com_google_googletest//:gtest",
],
)
cc_library(
name = "ostream",
hdrs = ["ostream.h"],
deps = [
"@llvm-project//llvm:Support",
],
)
cc_library(
name = "string_helpers",
srcs = ["string_helpers.cpp"],
hdrs = ["string_helpers.h"],
deps = [
":check",
":error",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "string_helpers_test",
srcs = ["string_helpers_test.cpp"],
deps = [
":string_helpers",
"//testing/base:gtest_main",
"@com_google_googletest//:gtest",
"@llvm-project//llvm:Support",
],
)
cc_library(
name = "vlog",
srcs = ["vlog_internal.h"],
hdrs = ["vlog.h"],
deps = [
":ostream",
"@llvm-project//llvm:Support",
],
)
cc_test(
name = "vlog_test",
srcs = ["vlog_test.cpp"],
deps = [
":vlog",
"//testing/base:gtest_main",
"//testing/base:test_raw_ostream",
"@com_google_googletest//:gtest",
],
)