1load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") 2load("@rules_java//java:defs.bzl", "java_proto_library") 3load("@rules_jvm_external//:kt_defs.bzl", "kt_jvm_export") 4load("@rules_proto//proto:defs.bzl", "proto_library") 5load("//:protobuf_version.bzl", "PROTOBUF_VERSION") 6load("//:protobuf.bzl", "internal_gen_kt_protos") 7 8exports_files([ 9 "src/test/kotlin/com/google/protobuf/Proto3Test.kt", 10]) 11 12# Kotlin generated protos depend on this and only this. 13kt_jvm_library( 14 name = "shared_runtime", 15 srcs = [ 16 "src/main/kotlin/com/google/protobuf/DslList.kt", 17 "src/main/kotlin/com/google/protobuf/DslMap.kt", 18 "src/main/kotlin/com/google/protobuf/DslProxy.kt", 19 "src/main/kotlin/com/google/protobuf/ExtensionList.kt", 20 "src/main/kotlin/com/google/protobuf/ProtoDslMarker.kt", 21 "src/main/kotlin/com/google/protobuf/UnmodifiableCollections.kt", 22 ], 23 visibility = ["//visibility:public"], 24 deps = [ 25 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 26 "//java/lite", 27 ], 28) 29 30kt_jvm_library( 31 name = "only_for_use_in_proto_generated_code_its_generator_and_tests", 32 srcs = ["src/main/kotlin/com/google/protobuf/OnlyForUseByGeneratedProtoCode.kt"], 33 visibility = ["//java:__subpackages__"], 34) 35 36kt_jvm_library( 37 name = "bytestring_lib", 38 srcs = ["src/main/kotlin/com/google/protobuf/ByteStrings.kt"], 39 deps = ["//java/lite"], 40 visibility = ["//java:__subpackages__"], 41) 42 43kt_jvm_library( 44 name = "full_extensions", 45 srcs = [ 46 "src/main/kotlin/com/google/protobuf/Anies.kt", 47 "src/main/kotlin/com/google/protobuf/ExtendableMessageExtensions.kt", 48 ], 49 deps = ["//java/core"], 50) 51 52kt_jvm_export( 53 name = "kotlin_mvn", 54 maven_coordinates = "com.google.protobuf:protobuf-kotlin:%s" % PROTOBUF_VERSION, 55 pom_template = "//java/kotlin:pom_template.xml", 56 resources = ["//:well_known_protos"], 57 runtime_deps = [ 58 ":bytestring_lib", 59 ":full_extensions", 60 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 61 ":shared_runtime", 62 ":well_known_protos_kotlin", 63 ], 64 deploy_env = [ 65 "@com_github_jetbrains_kotlin//:kotlin-stdlib", 66 "//java/core", 67 ], 68) 69 70filegroup( 71 name = "release", 72 srcs = [ 73 ":kotlin_mvn-docs", 74 ":kotlin_mvn-maven-source", 75 ":kotlin_mvn-pom", 76 ":kotlin_mvn-project", 77 ], 78 visibility = ["//java:__pkg__"], 79) 80 81test_suite( 82 name = "tests", 83 tests = [ 84 "bytestring_test", 85 "shared_tests", 86 "test_extensions", 87 "proto2_test", 88 "proto3_test", 89 ], 90) 91 92kt_jvm_library( 93 name = "bytestring_test_library", 94 srcs = ["src/test/kotlin/com/google/protobuf/ByteStringsTest.kt"], 95 deps = [ 96 ":bytestring_lib", 97 "//java/lite", 98 "@com_github_jetbrains_kotlin//:kotlin-test", 99 "@maven//:com_google_truth_truth", 100 "@maven//:junit_junit", 101 ], 102) 103 104java_test( 105 name = "bytestring_test", 106 runtime_deps = [":bytestring_test_library"], 107 test_class = "com.google.protobuf.kotlin.ByteStringsTest", 108) 109 110proto_library( 111 name = "example_extensible_message_proto", 112 srcs = ["src/test/proto/com/google/protobuf/example_extensible_message.proto"], 113 visibility = ["//java:__subpackages__"], 114) 115 116java_proto_library( 117 name = "example_extensible_message_java_proto", 118 deps = [":example_extensible_message_proto"], 119) 120 121kt_jvm_library( 122 name = "shared_tests_library", 123 srcs = [ 124 "src/test/kotlin/com/google/protobuf/DslListTest.kt", 125 "src/test/kotlin/com/google/protobuf/DslMapTest.kt", 126 "src/test/kotlin/com/google/protobuf/ExtensionListTest.kt", 127 ], 128 deps = [ 129 ":bytestring_lib", 130 ":example_extensible_message_java_proto", 131 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 132 ":shared_runtime", 133 "@com_github_jetbrains_kotlin//:kotlin-test", 134 "@maven//:com_google_truth_truth", 135 "@maven//:com_google_guava_guava_testlib", 136 "@maven//:junit_junit", 137 ], 138) 139 140java_test( 141 name = "shared_tests", 142 runtime_deps = [":shared_tests_library"], 143 test_class = "com.google.protobuf.kotlin.DslListTest", 144) 145 146kt_jvm_library( 147 name = "test_extensions_library", 148 srcs = [ 149 "src/test/kotlin/com/google/protobuf/AniesTest.kt", 150 "src/test/kotlin/com/google/protobuf/ExtendableMessageExtensionsTest.kt", 151 ], 152 deps = [ 153 ":example_extensible_message_java_proto", 154 ":full_extensions", 155 "//java/core:core", 156 ":kotlin_unittest", 157 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 158 ":shared_runtime", 159 "@com_github_jetbrains_kotlin//:kotlin-test", 160 "@maven//:com_google_truth_truth", 161 "@maven//:junit_junit", 162 ], 163) 164 165java_test( 166 name = "test_extensions", 167 runtime_deps = [":test_extensions_library"], 168 test_class = "com.google.protobuf.kotlin.ExtendableMessageExtensionsTest", 169) 170 171proto_library( 172 name = "evil_names_proto2", 173 srcs = ["src/test/proto/com/google/protobuf/evil_names_proto2.proto"], 174 visibility = ["//:__subpackages__"], 175) 176 177java_proto_library( 178 name = "evil_names_proto2_java_proto", 179 deps = [":evil_names_proto2"], 180) 181 182internal_gen_kt_protos( 183 name = "gen_evil_names_proto2", 184 deps = [":evil_names_proto2"], 185) 186 187proto_library( 188 name = "evil_names_proto3", 189 srcs = ["src/test/proto/com/google/protobuf/evil_names_proto3.proto"], 190 visibility = ["//:__subpackages__"], 191) 192 193java_proto_library( 194 name = "evil_names_proto3_java_proto", 195 deps = [":evil_names_proto3"], 196) 197 198internal_gen_kt_protos( 199 name = "gen_evil_names_proto3", 200 deps = [":evil_names_proto3"], 201) 202 203proto_library( 204 name = "multiple_files_proto3", 205 srcs = ["src/test/proto/com/google/protobuf/multiple_files_proto3.proto"], 206 visibility = ["//:__subpackages__"], 207) 208 209java_proto_library( 210 name = "multiple_files_proto3_java_proto", 211 deps = [":multiple_files_proto3"], 212) 213 214internal_gen_kt_protos( 215 name = "gen_kotlin_proto3_java_multiple_files", 216 deps = [":multiple_files_proto3"], 217) 218 219kt_jvm_library( 220 name = "kotlin_unittest", 221 srcs = [ 222 ":gen_evil_names_proto2", 223 "//:gen_kotlin_unittest", 224 ], 225 deps = [ 226 ":evil_names_proto2_java_proto", 227 "//java/core:core", 228 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 229 ":shared_runtime", 230 ":well_known_protos_kotlin", 231 "//:java_test_protos", 232 ], 233) 234 235kt_jvm_library( 236 name = "kotlin_proto3_unittest", 237 srcs = [ 238 ":gen_evil_names_proto3", 239 ":gen_kotlin_proto3_java_multiple_files", 240 "//:gen_kotlin_proto3_unittest", 241 ], 242 deps = [ 243 ":evil_names_proto3_java_proto", 244 ":multiple_files_proto3_java_proto", 245 "//java/core:core", 246 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 247 ":shared_runtime", 248 "//:java_test_protos", 249 ], 250) 251 252kt_jvm_library( 253 name = "proto2_test_library", 254 srcs = ["src/test/kotlin/com/google/protobuf/Proto2Test.kt"], 255 deps = [ 256 ":kotlin_unittest", 257 "//java/core:test_util", 258 "@maven//:com_google_truth_truth", 259 "@maven//:junit_junit", 260 ], 261) 262 263java_test( 264 name = "proto2_test", 265 runtime_deps = [":proto2_test_library"], 266 test_class = "com.google.protobuf.kotlin.Proto2Test", 267) 268 269kt_jvm_library( 270 name = "proto3_test_library", 271 srcs = ["src/test/kotlin/com/google/protobuf/Proto3Test.kt"], 272 deps = [ 273 ":kotlin_proto3_unittest", 274 "//java/core:test_util", 275 "@maven//:com_google_truth_truth", 276 "@maven//:junit_junit", 277 ], 278) 279 280java_test( 281 name = "proto3_test", 282 runtime_deps = [":proto3_test_library"], 283 test_class = "com.google.protobuf.kotlin.Proto3Test", 284) 285 286kt_jvm_library( 287 name = "well_known_protos_kotlin", 288 srcs = [ 289 "//:gen_well_known_protos_kotlin", 290 ], 291 deps = [ 292 "//java/core", 293 ":only_for_use_in_proto_generated_code_its_generator_and_tests", 294 ":shared_runtime", 295 ], 296) 297