blob: 22a726d2edb03b86c35c23aadf8f6736b4a3b9bd [file] [log] [blame]
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__"],
)