blob: 8570268a14187a64a7ec845b7637938e1eebbde5 [file] [log] [blame]
load("@rules_jvm_external//:kt_defs.bzl", "kt_jvm_export")
load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix")
load("//:protobuf.bzl", "internal_gen_kt_protos")
load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library")
load("//build_defs:kotlin_opts.bzl", "protobuf_versioned_kt_jvm_library")
java_lite_proto_library(
name = "example_extensible_message_java_proto_lite",
deps = ["//java/kotlin:example_extensible_message_proto"],
)
kt_jvm_library(
name = "lite_extensions",
srcs = ["src/main/kotlin/com/google/protobuf/ExtendableMessageLiteExtensions.kt"],
deps = ["//java/lite"],
)
internal_gen_kt_protos(
name = "gen_well_known_protos_kotlinlite",
lite = True,
deps = [
"//:any_proto",
"//:api_proto",
"//:descriptor_proto",
"//:duration_proto",
"//:empty_proto",
"//:field_mask_proto",
"//:java_features_proto",
"//:source_context_proto",
"//:struct_proto",
"//:timestamp_proto",
"//:type_proto",
"//:wrappers_proto",
],
)
kt_jvm_library(
name = "well_known_protos_kotlin_lite",
srcs = [
":gen_well_known_protos_kotlinlite",
],
deps = [
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
],
)
protobuf_versioned_kt_jvm_library(
name = "kotlin-lite_bundle",
automatic_module_name = "com.google.protobuf",
bundle_description = "Kotlin lite Protocol Buffers library. Protocol " +
"Buffers are a way of encoding structured data in " +
"an efficient yet extensible format.",
bundle_name = "Protocol Buffers [Kotlin-Lite]",
bundle_symbolic_name = "com.google.protobuf",
visibility = ["//visibility:public"],
exports = [
":lite_extensions",
":well_known_protos_kotlin_lite",
"//java/kotlin:bytestring_lib",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
],
)
kt_jvm_export(
name = "kotlin-lite_mvn",
deploy_env = [
"@rules_kotlin//kotlin/compiler:kotlin-stdlib",
"//java/lite",
],
maven_coordinates = "com.google.protobuf:protobuf-kotlin-lite:%s" % PROTOBUF_JAVA_VERSION,
pom_template = "//java/kotlin-lite:pom_template.xml",
resources = [
"//:java_features_proto",
"//:well_known_type_protos",
"//src/google/protobuf:descriptor_proto_srcs",
],
tags = ["manual"],
runtime_deps = [
":kotlin-lite_bundle",
],
)
filegroup(
name = "release",
srcs = [
":kotlin-lite_mvn-docs",
":kotlin-lite_mvn-maven-source",
":kotlin-lite_mvn-pom",
":kotlin-lite_mvn-project",
],
visibility = ["//java:__pkg__"],
)
test_suite(
name = "tests",
tests = [
"proto2_test_lite",
"proto3_test_lite",
"test_lite_extensions",
],
)
kt_jvm_library(
name = "test_lite_extensions_library",
srcs = ["src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt"],
deps = [
":example_extensible_message_java_proto_lite",
":lite_extensions",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
"@protobuf_maven//:com_google_truth_truth",
"@protobuf_maven//:junit_junit",
"@rules_kotlin//kotlin/compiler:kotlin-test",
],
)
java_test(
name = "test_lite_extensions",
test_class = "com.google.protobuf.kotlin.ExtendableMessageLiteExtensionsTest",
runtime_deps = [":test_lite_extensions_library"],
)
java_lite_proto_library(
name = "evil_names_proto2_java_proto_lite",
deps = ["//java/kotlin:evil_names_proto2"],
)
internal_gen_kt_protos(
name = "gen_evil_names_proto2_lite",
lite = True,
deps = ["//java/kotlin:evil_names_proto2"],
)
java_lite_proto_library(
name = "evil_names_proto3_java_proto_lite",
deps = ["//java/kotlin:evil_names_proto3"],
)
internal_gen_kt_protos(
name = "gen_evil_names_proto3_lite",
lite = True,
deps = ["//java/kotlin:evil_names_proto3"],
)
java_lite_proto_library(
name = "multiple_files_proto3_java_proto_lite",
deps = ["//java/kotlin:multiple_files_proto3"],
)
internal_gen_kt_protos(
name = "gen_kotlin_proto3_java_multiple_files_lite",
deps = ["//java/kotlin:multiple_files_proto3"],
)
internal_gen_kt_protos(
name = "gen_kotlin_unittest_lite",
lite = True,
deps = ["//src/google/protobuf:lite_test_protos"],
)
kt_jvm_library(
name = "kotlin_unittest_lite",
srcs = [
":gen_evil_names_proto2_lite",
":gen_kotlin_unittest_lite",
],
deps = [
":evil_names_proto2_java_proto_lite",
"//java/core:generic_test_protos_java_proto_lite",
"//java/core:lite_test_protos_java_proto_lite",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
],
)
internal_gen_kt_protos(
name = "gen_kotlin_proto3_unittest_lite",
lite = True,
deps = ["//src/google/protobuf:kt_proto3_unittest_protos"],
)
kt_jvm_library(
name = "kotlin_proto3_unittest_lite",
srcs = [
":gen_evil_names_proto3_lite",
":gen_kotlin_proto3_java_multiple_files_lite",
":gen_kotlin_proto3_unittest_lite",
],
deps = [
":evil_names_proto3_java_proto_lite",
":multiple_files_proto3_java_proto_lite",
"//java/core:generic_test_protos_java_proto_lite",
"//java/core:lite_test_protos_java_proto_lite",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
],
)
kt_jvm_library(
name = "proto2_test_lite_library",
srcs = ["src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt"],
deps = [
":kotlin_unittest_lite",
"//java/core:test_util_lite",
"@protobuf_maven//:com_google_truth_truth",
"@protobuf_maven//:junit_junit",
],
)
java_test(
name = "proto2_test_lite",
test_class = "com.google.protobuf.kotlin.Proto2LiteTest",
runtime_deps = [":proto2_test_lite_library"],
)
kt_jvm_library(
name = "proto3_test_lite_library",
srcs = ["//java/kotlin:src/test/kotlin/com/google/protobuf/Proto3Test.kt"],
deps = [
":kotlin_proto3_unittest_lite",
"//java/core:test_util_lite",
"@protobuf_maven//:com_google_truth_truth",
"@protobuf_maven//:junit_junit",
],
)
java_test(
name = "proto3_test_lite",
test_class = "com.google.protobuf.kotlin.Proto3Test",
runtime_deps = [":proto3_test_lite_library"],
)
pkg_files(
name = "dist_files",
srcs = glob([
"src/main/kotlin/com/google/protobuf/*.kt",
"src/test/kotlin/**/*.kt",
]) + [
"BUILD.bazel",
"generate-sources-build.xml",
"generate-test-sources-build.xml",
"lite.awk",
"pom_template.xml",
"process-lite-sources-build.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)