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