• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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