| load("//src:release_archive.bzl", "release_archive") |
| |
| # Description: |
| # one version C++ implementation. |
| package(default_visibility = ["//src:__subpackages__"]) |
| |
| filegroup( |
| name = "srcs", |
| srcs = glob(["**"]), |
| visibility = ["//src:__pkg__"], |
| ) |
| |
| SOURCES = [ |
| # keep sorted |
| "allowlist.cc", |
| "allowlist.h", |
| "duplicate_class_collector.cc", |
| "duplicate_class_collector.h", |
| "one_version.cc", |
| "one_version.h", |
| "one_version_main.cc", |
| ] |
| |
| cc_library( |
| name = "duplicate_class_collector", |
| srcs = [ |
| "duplicate_class_collector.cc", |
| ], |
| hdrs = [ |
| "duplicate_class_collector.h", |
| ], |
| deps = [ |
| "@abseil-cpp//absl/container:flat_hash_map", |
| "@abseil-cpp//absl/strings", |
| ], |
| ) |
| |
| cc_test( |
| name = "duplicate_class_collector_test", |
| srcs = [ |
| "duplicate_class_collector_test.cc", |
| ], |
| deps = [ |
| ":duplicate_class_collector", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_library( |
| name = "allowlist", |
| srcs = ["allowlist.cc"], |
| hdrs = ["allowlist.h"], |
| deps = [ |
| ":duplicate_class_collector", |
| "@abseil-cpp//absl/container:flat_hash_map", |
| "@abseil-cpp//absl/container:flat_hash_set", |
| "@abseil-cpp//absl/strings", |
| "@abseil-cpp//absl/types:span", |
| ], |
| ) |
| |
| cc_test( |
| name = "allowlist_test", |
| srcs = ["allowlist_test.cc"], |
| deps = [ |
| ":allowlist", |
| ":duplicate_class_collector", |
| "@abseil-cpp//absl/container:flat_hash_map", |
| "@abseil-cpp//absl/container:flat_hash_set", |
| "@com_google_googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_library( |
| name = "one_version", |
| srcs = ["one_version.cc"], |
| hdrs = ["one_version.h"], |
| deps = [ |
| ":allowlist", |
| ":duplicate_class_collector", |
| "//src/tools/singlejar:input_jar", |
| "@abseil-cpp//absl/log:die_if_null", |
| "@abseil-cpp//absl/memory", |
| "@abseil-cpp//absl/strings", |
| ], |
| ) |
| |
| cc_binary( |
| name = "one_version_main", |
| srcs = [ |
| "one_version_main.cc", |
| ], |
| deps = [ |
| ":allowlist", |
| ":duplicate_class_collector", |
| ":one_version", |
| "//src/tools/singlejar:input_jar", |
| "//src/tools/singlejar:token_stream", |
| "@abseil-cpp//absl/container:flat_hash_map", |
| "@abseil-cpp//absl/container:flat_hash_set", |
| "@abseil-cpp//absl/log:die_if_null", |
| "@abseil-cpp//absl/strings", |
| ], |
| ) |
| |
| filegroup( |
| name = "embedded_java_tools", |
| srcs = SOURCES + [ |
| "//src/tools/singlejar:embedded_java_tools", |
| ], |
| visibility = ["//src:__pkg__"], |
| ) |
| |
| release_archive( |
| name = "one_version_transitive_zip", |
| package_dir = "java_tools", |
| visibility = ["//src:__pkg__"], |
| deps = [ |
| ":one_version_zip", |
| "//src/tools/singlejar:singlejar_transitive_zip", |
| ], |
| ) |
| |
| release_archive( |
| name = "one_version_zip", |
| srcs = SOURCES, |
| package_dir = "src/tools/one_version", |
| visibility = ["//visibility:private"], |
| ) |
| |
| release_archive( |
| name = "one_version_deploy_zip", |
| srcs = [":one_version_main"], |
| package_dir = "java_tools/src/tools/one_version", |
| visibility = ["//src:__pkg__"], |
| ) |