blob: 6e56b151c10ec209790e9f8b636c9168607cdf1b [file] [log] [blame]
# 'util' contains generic containers, adapters, algorithms
# Any verible package may directly depend on this.
licenses(["notice"])
package(
default_visibility = [
"//:__subpackages__",
],
)
cc_library(
name = "algorithm",
hdrs = ["algorithm.h"],
)
cc_library(
name = "auto_pop_stack",
hdrs = ["auto_pop_stack.h"],
deps = [
":iterator_adaptors",
":logging",
],
)
cc_library(
name = "forward",
hdrs = ["forward.h"],
)
cc_library(
name = "process",
srcs = ["process.cc"],
hdrs = ["process.h"],
deps = [],
)
cc_library(
name = "range",
hdrs = ["range.h"],
deps = [":logging"],
)
cc_library(
name = "status_macros",
hdrs = ["status_macros.h"],
deps = ["@com_google_absl//absl/base:core_headers"],
)
cc_library(
name = "subcommand",
srcs = ["subcommand.cc"],
hdrs = ["subcommand.h"],
deps = [
":container_iterator_range",
"//common/strings:compare",
"@com_google_absl//absl/status",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "file_util",
srcs = ["file_util.cc"],
hdrs = ["file_util.h"],
deps = [
":logging",
"@com_google_absl//absl/status",
"@com_google_absl//absl/strings",
],
)
# Due to the hermetic builds bazel offers, we can't just fill a header file
# with a git hash. We have to use the workspace stamping features bazel
# offers.
# https://docs.bazel.build/versions/master/user-manual.html#workspace_status
# to contain a proper git timestamp, bazel has to be invoked with
# bazel build --workspace_status_command=bazel/build-version.sh
genrule(
name = "version_header",
outs = ["verible_build_version.h"],
cmd = "./$(location create_version_header.sh) > $@",
stamp = 1, # Tell bazel that we really are interested in the status file
tools = ["create_version_header.sh"],
visibility = ["//visibility:private"],
)
cc_library(
name = "build_version",
hdrs = ["verible_build_version.h"],
visibility = ["//visibility:private"],
)
cc_library(
name = "init_command_line",
srcs = ["init_command_line.cc"],
hdrs = ["init_command_line.h"],
deps = [
# these deps are needed by init_command_line.cc:
":build_version", # buildcleaner: keep
"@com_google_absl//absl/flags:config", # buildcleaner: keep
"@com_google_absl//absl/flags:flag", # buildcleaner: keep
"@com_google_absl//absl/flags:parse", # buildcleaner: keep
"@com_google_absl//absl/flags:usage", # buildcleaner: keep
"@com_google_absl//absl/strings", # buildcleaner: keep
"@com_google_absl//absl/time", # buildcleaner: keep
],
)
cc_library(
name = "interval",
hdrs = ["interval.h"],
deps = [
":forward",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "interval_set",
hdrs = ["interval_set.h"],
deps = [
":auto_iterator",
":interval",
":iterator_range",
":logging",
"@com_google_absl//absl/random",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "logging",
srcs = ["logging.cc"],
hdrs = ["logging.h"],
deps = [
"@com_google_absl//absl/base",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/base:log_severity",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "casts",
hdrs = ["casts.h"],
)
cc_library(
name = "container_util",
hdrs = ["container_util.h"],
deps = [
":logging",
],
)
cc_library(
name = "container_iterator_range",
hdrs = ["container_iterator_range.h"],
deps = [
":iterator_range",
":range",
],
)
cc_library(
name = "auto_iterator",
hdrs = ["auto_iterator.h"],
)
cc_library(
name = "iterator_adaptors",
hdrs = ["iterator_adaptors.h"],
deps = [
":auto_iterator",
":iterator_range",
],
)
cc_library(
name = "iterator_range",
hdrs = ["iterator_range.h"],
deps = [],
)
cc_library(
name = "spacer",
srcs = ["spacer.cc"],
hdrs = ["spacer.h"],
)
cc_library(
name = "top_n",
hdrs = ["top_n.h"],
)
cc_library(
name = "value_saver",
hdrs = ["value_saver.h"],
)
cc_library(
name = "enum_flags",
hdrs = ["enum_flags.h"],
deps = [
":logging",
"//common/strings:compare",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "enum_flags_test_util",
testonly = 1,
hdrs = ["enum_flags_test_util.h"],
deps = [
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest", # for library testonly
],
)
cc_library(
name = "bijective_map",
hdrs = ["bijective_map.h"],
deps = [":forward"],
)
cc_library(
name = "vector_tree",
srcs = ["vector_tree.cc"],
hdrs = ["vector_tree.h"],
deps = [
":iterator_range",
":logging",
":spacer",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "expandable_tree_view",
hdrs = ["expandable_tree_view.h"],
deps = [
":logging",
":vector_tree",
],
)
cc_library(
name = "vector_tree_test_util",
testonly = 1,
srcs = ["vector_tree_test_util.cc"],
hdrs = ["vector_tree_test_util.h"],
deps = [
":vector_tree",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest", # for library testonly
],
)
cc_library(
name = "with_reason",
hdrs = ["with_reason.h"],
)
cc_test(
name = "algorithm_test",
srcs = ["algorithm_test.cc"],
deps = [
":algorithm",
":iterator_range",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "auto_pop_stack_test",
srcs = ["auto_pop_stack_test.cc"],
deps = [
":auto_pop_stack",
":iterator_range",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "file_util_test",
srcs = ["file_util_test.cc"],
deps = [
":file_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "interval_test",
srcs = ["interval_test.cc"],
deps = [
":interval",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "interval_set_test",
srcs = ["interval_set_test.cc"],
deps = [
":interval_set",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "forward_test",
srcs = ["forward_test.cc"],
deps = [
":forward",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "process_test",
srcs = ["process_test.cc"],
deps = [
":process",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "range_test",
srcs = ["range_test.cc"],
deps = [
":iterator_range",
":range",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "container_iterator_range_test",
srcs = ["container_iterator_range_test.cc"],
deps = [
":container_iterator_range",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "iterator_adaptors_test",
srcs = ["iterator_adaptors_test.cc"],
deps = [
":iterator_adaptors",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "iterator_range_test",
srcs = ["iterator_range_test.cc"],
deps = [
":iterator_range",
":range",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "spacer_test",
srcs = ["spacer_test.cc"],
deps = [
":spacer",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "subcommand_test",
srcs = ["subcommand_test.cc"],
deps = [
":subcommand",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "top_n_test",
srcs = ["top_n_test.cc"],
deps = [
":top_n",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "value_saver_test",
srcs = ["value_saver_test.cc"],
deps = [
":value_saver",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "enum_flags_test",
srcs = ["enum_flags_test.cc"],
deps = [
":enum_flags",
":enum_flags_test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "bijective_map_test",
srcs = ["bijective_map_test.cc"],
deps = [
":bijective_map",
":logging",
"//common/strings:compare",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "vector_tree_test",
srcs = ["vector_tree_test.cc"],
deps = [
":vector_tree",
":vector_tree_test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "expandable_tree_view_test",
srcs = ["expandable_tree_view_test.cc"],
deps = [
":expandable_tree_view",
":vector_tree",
":vector_tree_test_util",
"@com_google_absl//absl/strings",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "with_reason_test",
srcs = ["with_reason_test.cc"],
deps = [
":with_reason",
"@com_google_googletest//:gtest_main",
],
)