1load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") 2load("@rules_java//java:defs.bzl", "java_lite_proto_library") 3load("@rules_jvm_external//:kt_defs.bzl", "kt_jvm_export") 4load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") 5load("//:protobuf.bzl", "internal_gen_kt_protos") 6load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION") 7 8java_lite_proto_library( 9 name = "example_extensible_message_java_proto_lite", 10 deps = ["//java/kotlin:example_extensible_message_proto"], 11) 12 13kt_jvm_library( 14 name = "lite_extensions", 15 srcs = ["src/main/kotlin/com/google/protobuf/ExtendableMessageLiteExtensions.kt"], 16 deps = ["//java/lite"], 17) 18 19internal_gen_kt_protos( 20 name = "gen_well_known_protos_kotlinlite", 21 lite = True, 22 deps = [ 23 "//:any_proto", 24 "//:api_proto", 25 "//:duration_proto", 26 "//:empty_proto", 27 "//:field_mask_proto", 28 "//:source_context_proto", 29 "//:struct_proto", 30 "//:timestamp_proto", 31 "//:type_proto", 32 "//:wrappers_proto", 33 ], 34) 35 36kt_jvm_library( 37 name = "well_known_protos_kotlin_lite", 38 srcs = [ 39 ":gen_well_known_protos_kotlinlite", 40 ], 41 deps = [ 42 "//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests", 43 "//java/kotlin:shared_runtime", 44 "//java/lite", 45 ], 46) 47 48kt_jvm_export( 49 name = "kotlin-lite_mvn", 50 deploy_env = [ 51 "@com_github_jetbrains_kotlin//:kotlin-stdlib", 52 "//java/lite", 53 ], 54 maven_coordinates = "com.google.protobuf:protobuf-kotlin-lite:%s" % PROTOBUF_JAVA_VERSION, 55 pom_template = "//java/kotlin-lite:pom_template.xml", 56 resources = ["//:well_known_type_protos"], 57 tags = ["manual"], 58 runtime_deps = [ 59 ":lite_extensions", 60 ":well_known_protos_kotlin_lite", 61 "//java/kotlin:bytestring_lib", 62 "//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests", 63 "//java/kotlin:shared_runtime", 64 ], 65) 66 67filegroup( 68 name = "release", 69 srcs = [ 70 ":kotlin-lite_mvn-docs", 71 ":kotlin-lite_mvn-maven-source", 72 ":kotlin-lite_mvn-pom", 73 ":kotlin-lite_mvn-project", 74 ], 75 visibility = ["//java:__pkg__"], 76) 77 78test_suite( 79 name = "tests", 80 tests = [ 81 "proto2_test_lite", 82 "proto3_test_lite", 83 "test_lite_extensions", 84 ], 85) 86 87kt_jvm_library( 88 name = "test_lite_extensions_library", 89 srcs = ["src/test/kotlin/com/google/protobuf/ExtendableMessageLiteExtensionsTest.kt"], 90 deps = [ 91 ":example_extensible_message_java_proto_lite", 92 ":lite_extensions", 93 "//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests", 94 "//java/kotlin:shared_runtime", 95 "//java/lite", 96 "@com_github_jetbrains_kotlin//:kotlin-test", 97 "@maven//:com_google_truth_truth", 98 "@maven//:junit_junit", 99 ], 100) 101 102java_test( 103 name = "test_lite_extensions", 104 test_class = "com.google.protobuf.kotlin.ExtendableMessageLiteExtensionsTest", 105 runtime_deps = [":test_lite_extensions_library"], 106) 107 108java_lite_proto_library( 109 name = "evil_names_proto2_java_proto_lite", 110 deps = ["//java/kotlin:evil_names_proto2"], 111) 112 113internal_gen_kt_protos( 114 name = "gen_evil_names_proto2_lite", 115 lite = True, 116 deps = ["//java/kotlin:evil_names_proto2"], 117) 118 119java_lite_proto_library( 120 name = "evil_names_proto3_java_proto_lite", 121 deps = ["//java/kotlin:evil_names_proto3"], 122) 123 124internal_gen_kt_protos( 125 name = "gen_evil_names_proto3_lite", 126 lite = True, 127 deps = ["//java/kotlin:evil_names_proto3"], 128) 129 130java_lite_proto_library( 131 name = "multiple_files_proto3_java_proto_lite", 132 deps = ["//java/kotlin:multiple_files_proto3"], 133) 134 135internal_gen_kt_protos( 136 name = "gen_kotlin_proto3_java_multiple_files_lite", 137 deps = ["//java/kotlin:multiple_files_proto3"], 138) 139 140internal_gen_kt_protos( 141 name = "gen_kotlin_unittest_lite", 142 lite = True, 143 deps = ["//:kt_unittest_lite"], 144) 145 146kt_jvm_library( 147 name = "kotlin_unittest_lite", 148 srcs = [ 149 ":gen_evil_names_proto2_lite", 150 ":gen_kotlin_unittest_lite", 151 ], 152 deps = [ 153 ":evil_names_proto2_java_proto_lite", 154 "//java/core:generic_test_protos_java_proto_lite", 155 "//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests", 156 "//java/kotlin:shared_runtime", 157 "//java/lite", 158 ], 159) 160 161internal_gen_kt_protos( 162 name = "gen_kotlin_proto3_unittest_lite", 163 lite = True, 164 deps = ["//:kt_proto3_unittest"], 165) 166 167kt_jvm_library( 168 name = "kotlin_proto3_unittest_lite", 169 srcs = [ 170 ":gen_evil_names_proto3_lite", 171 ":gen_kotlin_proto3_java_multiple_files_lite", 172 ":gen_kotlin_proto3_unittest_lite", 173 ], 174 deps = [ 175 ":evil_names_proto3_java_proto_lite", 176 ":multiple_files_proto3_java_proto_lite", 177 "//java/core:generic_test_protos_java_proto_lite", 178 "//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests", 179 "//java/kotlin:shared_runtime", 180 "//java/lite", 181 ], 182) 183 184kt_jvm_library( 185 name = "proto2_test_lite_library", 186 srcs = ["src/test/kotlin/com/google/protobuf/Proto2LiteTest.kt"], 187 deps = [ 188 ":kotlin_unittest_lite", 189 "//java/core:test_util_lite", 190 "@maven//:com_google_truth_truth", 191 "@maven//:junit_junit", 192 ], 193) 194 195java_test( 196 name = "proto2_test_lite", 197 test_class = "com.google.protobuf.kotlin.Proto2LiteTest", 198 runtime_deps = [":proto2_test_lite_library"], 199) 200 201kt_jvm_library( 202 name = "proto3_test_lite_library", 203 srcs = ["//java/kotlin:src/test/kotlin/com/google/protobuf/Proto3Test.kt"], 204 deps = [ 205 ":kotlin_proto3_unittest_lite", 206 "//java/core:test_util_lite", 207 "@maven//:com_google_truth_truth", 208 "@maven//:junit_junit", 209 ], 210) 211 212java_test( 213 name = "proto3_test_lite", 214 test_class = "com.google.protobuf.kotlin.Proto3Test", 215 runtime_deps = [":proto3_test_lite_library"], 216) 217 218pkg_files( 219 name = "dist_files", 220 srcs = glob([ 221 "src/main/kotlin/com/google/protobuf/*.kt", 222 "src/test/kotlin/**/*.kt", 223 ]) + [ 224 "BUILD.bazel", 225 "generate-sources-build.xml", 226 "generate-test-sources-build.xml", 227 "lite.awk", 228 "pom.xml", 229 "pom_template.xml", 230 "process-lite-sources-build.xml", 231 ], 232 strip_prefix = strip_prefix.from_root(""), 233 visibility = ["//java:__pkg__"], 234) 235