| # '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", | |
| "@com_google_absl//absl/base:core_headers", | |
| ], | |
| ) | |
| cc_library( | |
| name = "forward", | |
| hdrs = ["forward.h"], | |
| ) | |
| 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", | |
| "//common/strings:mem_block", | |
| "@com_google_absl//absl/status", | |
| "@com_google_absl//absl/status:statusor", | |
| "@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.py | |
| genrule( | |
| name = "version_header", | |
| outs = ["generated_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 = ["generated_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: | |
| ":logging", # buildcleaner: keep | |
| ":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/log:globals", # buildcleaner: keep | |
| "@com_google_absl//absl/log:initialize", # 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_map", | |
| hdrs = ["interval_map.h"], | |
| deps = [ | |
| ":auto_iterator", | |
| ":logging", | |
| ], | |
| ) | |
| 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", | |
| ], | |
| ) | |
| # TODO: once all absl logging features are established in abseil-cpp, we | |
| # should IWYU them directly in places where we need logging and remove | |
| # this common/util:logging target. | |
| cc_library( | |
| name = "logging", | |
| srcs = ["logging.cc"], | |
| hdrs = ["logging.h"], | |
| deps = [ | |
| "@com_google_absl//absl/log", | |
| "@com_google_absl//absl/log:check", | |
| "@com_google_absl//absl/log:die_if_null", | |
| ], | |
| ) | |
| 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 = "type_traits", | |
| hdrs = ["type_traits.h"], | |
| ) | |
| 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 = [ | |
| ":bijective_map", | |
| "//common/strings:compare", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "bijective_map", | |
| hdrs = ["bijective_map.h"], | |
| deps = [ | |
| ":forward", | |
| ":logging", | |
| ], | |
| ) | |
| cc_library( | |
| name = "vector_tree", | |
| hdrs = ["vector_tree.h"], | |
| deps = [ | |
| ":container_proxy", | |
| ":iterator_range", | |
| ":logging", | |
| ":type_traits", | |
| ], | |
| ) | |
| cc_library( | |
| name = "tree_operations", | |
| srcs = ["tree_operations.cc"], | |
| hdrs = ["tree_operations.h"], | |
| deps = [ | |
| ":logging", | |
| ":spacer", | |
| ":type_traits", | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "expandable_tree_view", | |
| hdrs = ["expandable_tree_view.h"], | |
| deps = [ | |
| ":logging", | |
| ":tree_operations", | |
| ":vector_tree", | |
| ], | |
| ) | |
| cc_library( | |
| name = "vector_tree_test_util", | |
| testonly = 1, | |
| srcs = ["vector_tree_test_util.cc"], | |
| hdrs = ["vector_tree_test_util.h"], | |
| deps = [ | |
| ":tree_operations", | |
| ":vector_tree", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest", # for library testonly | |
| ], | |
| ) | |
| cc_library( | |
| name = "vector_tree_iterators", | |
| hdrs = ["vector_tree_iterators.h"], | |
| deps = [ | |
| ":iterator_range", | |
| ":logging", | |
| ":tree_operations", | |
| ":vector_tree", | |
| ], | |
| ) | |
| cc_library( | |
| name = "map_tree", | |
| hdrs = ["map_tree.h"], | |
| deps = [ | |
| ":logging", | |
| ":spacer", | |
| ], | |
| ) | |
| cc_library( | |
| name = "with_reason", | |
| hdrs = ["with_reason.h"], | |
| ) | |
| cc_library( | |
| name = "user_interaction", | |
| srcs = ["user_interaction.cc"], | |
| hdrs = ["user_interaction.h"], | |
| deps = [ | |
| "@com_google_absl//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "container_proxy", | |
| hdrs = ["container_proxy.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_iterator_test", | |
| srcs = ["auto_iterator_test.cc"], | |
| deps = [ | |
| ":auto_iterator", | |
| "@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/status", | |
| "@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_map_test", | |
| srcs = ["interval_map_test.cc"], | |
| deps = [ | |
| ":interval_map", | |
| ":range", | |
| "@com_google_absl//absl/strings", | |
| "@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 = "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 = "type_traits_test", | |
| srcs = ["type_traits_test.cc"], | |
| deps = [ | |
| ":type_traits", | |
| "@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", | |
| "@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 = [ | |
| ":tree_operations", | |
| ":vector_tree", | |
| ":vector_tree_test_util", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "tree_operations_test", | |
| srcs = ["tree_operations_test.cc"], | |
| deps = [ | |
| ":spacer", | |
| ":tree_operations", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_absl//absl/strings:str_format", | |
| "@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 = "vector_tree_iterators_test", | |
| srcs = ["vector_tree_iterators_test.cc"], | |
| deps = [ | |
| ":tree_operations", | |
| ":vector_tree", | |
| ":vector_tree_iterators", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "map_tree_test", | |
| srcs = ["map_tree_test.cc"], | |
| copts = select({ | |
| "@platforms//os:windows": [], | |
| "//conditions:default": ["-Wno-array-bounds"], | |
| }), | |
| deps = [ | |
| ":map_tree", | |
| ":spacer", | |
| "@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_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "user_interaction_test", | |
| srcs = ["user_interaction_test.cc"], | |
| deps = [ | |
| ":user_interaction", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "container_proxy_test", | |
| srcs = ["container_proxy_test.cc"], | |
| deps = [ | |
| ":container_proxy", | |
| ":type_traits", | |
| "//common/strings:display_utils", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "simple_zip", | |
| srcs = ["simple_zip.cc"], | |
| hdrs = ["simple_zip.h"], | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//third_party/portable_endian", | |
| "@com_google_absl//absl/strings", | |
| "@zlib", | |
| ], | |
| ) | |
| cc_test( | |
| name = "simple_zip_test", | |
| srcs = ["simple_zip_test.cc"], | |
| deps = [ | |
| ":file_util", | |
| ":simple_zip", | |
| "@com_google_absl//absl/strings", | |
| "@com_google_googletest//:gtest_main", | |
| ], | |
| ) |