• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
2load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
3load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
4load("@rules_cc//cc:cc_library.bzl", "cc_library")
5load("@rules_java//java:java_binary.bzl", "java_binary")
6load("@rules_java//java:java_import.bzl", "java_import")
7
8package(default_visibility = ["//visibility:public"])
9
10exports_files(glob(["**/*.jar"]))
11
12licenses(["notice"])  # Apache 2.0
13
14SUPRESSED_WARNINGS = select({
15    ":windows": [],
16    "//conditions:default": [
17        "-Wno-error",
18        "-Wno-old-style-cast",
19    ],
20})
21
22filegroup(
23    name = "GenClass",
24    srcs = ["java_tools/GenClass_deploy.jar"],
25)
26
27filegroup(
28    name = "jacoco_coverage_runner_filegroup",
29    srcs = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
30)
31
32java_import(
33    name = "jacoco_coverage_runner",
34    jars = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
35)
36
37filegroup(
38    name = "JacocoCoverage",
39    srcs = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
40)
41
42filegroup(
43    name = "JavaBuilder",
44    srcs = ["java_tools/JavaBuilder_deploy.jar"],
45)
46
47filegroup(
48    name = "Runner",
49    srcs = ["java_tools/Runner_deploy.jar"],
50)
51
52filegroup(
53    name = "VanillaJavaBuilder",
54    srcs = ["java_tools/VanillaJavaBuilder_deploy.jar"],
55)
56
57filegroup(
58    name = "TurbineDirect",
59    srcs = ["java_tools/turbine_direct_binary_deploy.jar"],
60)
61
62java_import(
63    name = "jacoco-agent",
64    jars = ["java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.11.jar"],
65    srcjar = "java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.11-sources.jar",
66)
67
68java_import(
69    name = "jacoco-core",
70    jars = ["java_tools/third_party/java/jacoco/org.jacoco.core-0.8.11.jar"],
71    srcjar = "java_tools/third_party/java/jacoco/org.jacoco.core-0.8.11-sources.jar",
72    exports = [
73        ":asm",
74        ":asm-commons",
75        ":asm-tree",
76    ],
77)
78
79filegroup(
80    name = "jacoco-core-jars",
81    srcs = ["java_tools/third_party/java/jacoco/org.jacoco.core-0.8.11.jar"],
82)
83
84java_import(
85    name = "jacoco-report",
86    jars = ["java_tools/third_party/java/jacoco/org.jacoco.report-0.8.11.jar"],
87    srcjar = "java_tools/third_party/java/jacoco/org.jacoco.report-0.8.11-sources.jar",
88    exports = [
89        ":asm",
90        ":jacoco-core",
91    ],
92)
93
94java_import(
95    name = "bazel-jacoco-agent",
96    jars = ["java_tools/third_party/java/jacoco/jacocoagent-0.8.11.jar"],
97)
98
99java_import(
100    name = "bazel-jacoco-agent-neverlink",
101    jars = ["java_tools/third_party/java/jacoco/jacocoagent-0.8.11.jar"],
102    neverlink = 1,
103)
104
105java_import(
106    name = "asm",
107    jars = ["java_tools/third_party/java/jacoco/asm-9.6.jar"],
108    srcjar = "java_tools/third_party/java/jacoco/asm-9.6-sources.jar",
109)
110
111java_import(
112    name = "asm-commons",
113    jars = ["java_tools/third_party/java/jacoco/asm-commons-9.6.jar"],
114    srcjar = "java_tools/third_party/java/jacoco/asm-commons-9.6-sources.jar",
115    runtime_deps = [":asm-tree"],
116)
117
118java_import(
119    name = "asm-tree",
120    jars = ["java_tools/third_party/java/jacoco/asm-tree-9.6.jar"],
121    srcjar = "java_tools/third_party/java/jacoco/asm-tree-9.6-sources.jar",
122    runtime_deps = [":asm"],
123)
124
125config_setting(
126    name = "windows",
127    constraint_values = ["@platforms//os:windows"],
128)
129
130config_setting(
131    name = "freebsd",
132    constraint_values = ["@platforms//os:freebsd"],
133    visibility = ["//visibility:public"],
134)
135
136config_setting(
137    name = "openbsd",
138    constraint_values = ["@platforms//os:openbsd"],
139    visibility = ["//visibility:public"],
140)
141
142# Create intermediate cc_library, which does not implicitly depend on "malloc"
143# and "link_extra_lib" in @bazel_tools//tools/cpp, and thereby avoids include
144# path /Iexternal/tools being used in compiling actions which would result in
145# the wrong headers being picked up.
146cc_library(
147    name = "ijar_cc_binary_main",
148    srcs = [
149        "java_tools/ijar/classfile.cc",
150        "java_tools/ijar/ijar.cc",
151    ],
152    copts = SUPRESSED_WARNINGS,
153    linkstatic = 1,  # provides main()
154    deps = [":zip"],
155    alwayslink = 1,
156)
157
158cc_binary(
159    name = "ijar_cc_binary",
160    deps = [":ijar_cc_binary_main"],
161)
162
163cc_library(
164    name = "zip",
165    srcs = [
166        "java_tools/ijar/zip.cc",
167    ] + select({
168        ":windows": [
169            "java_tools/ijar/mapped_file_windows.cc",
170        ],
171        "//conditions:default": [
172            "java_tools/ijar/mapped_file_unix.cc",
173        ],
174    }),
175    hdrs = [
176        "java_tools/ijar/common.h",
177        "java_tools/ijar/mapped_file.h",
178        "java_tools/ijar/zip.h",
179    ],
180    copts = SUPRESSED_WARNINGS,
181    include_prefix = "third_party",
182    strip_include_prefix = "java_tools",
183    deps = [
184        ":platform_utils",
185        ":zlib_client",
186    ] + select({
187        ":windows": [
188            ":errors",
189            ":filesystem",
190            ":logging",
191            ":strings",
192        ],
193        "//conditions:default": [
194        ],
195    }),
196)
197
198cc_library(
199    name = "platform_utils",
200    srcs = ["java_tools/ijar/platform_utils.cc"],
201    hdrs = [
202        "java_tools/ijar/common.h",
203        "java_tools/ijar/platform_utils.h",
204    ],
205    copts = SUPRESSED_WARNINGS,
206    include_prefix = "third_party",
207    strip_include_prefix = "java_tools",
208    visibility = ["//visibility:private"],
209    deps = [
210        ":errors",
211        ":filesystem",
212        ":logging",
213    ],
214)
215
216cc_library(
217    name = "cpp_util",
218    hdrs = [
219        "java_tools/src/main/cpp/util/errors.h",
220        "java_tools/src/main/cpp/util/file.h",
221        "java_tools/src/main/cpp/util/file_platform.h",
222        "java_tools/src/main/cpp/util/md5.h",
223        "java_tools/src/main/cpp/util/numbers.h",
224        "java_tools/src/main/cpp/util/path.h",
225        "java_tools/src/main/cpp/util/path_platform.h",
226        "java_tools/src/main/cpp/util/port.h",
227    ],
228    strip_include_prefix = "java_tools",
229    visibility = ["//visibility:public"],
230    deps = [
231        ":blaze_exit_code",
232        ":errors",
233        ":filesystem",
234        ":md5",
235        ":numbers",
236        ":port",
237        ":strings",
238    ],
239)
240
241cc_library(
242    name = "md5",
243    srcs = ["java_tools/src/main/cpp/util/md5.cc"],
244    hdrs = ["java_tools/src/main/cpp/util/md5.h"],
245    strip_include_prefix = "java_tools",
246)
247
248cc_library(
249    name = "numbers",
250    srcs = ["java_tools/src/main/cpp/util/numbers.cc"],
251    hdrs = ["java_tools/src/main/cpp/util/numbers.h"],
252    strip_include_prefix = "java_tools",
253    deps = [":strings"],
254)
255
256cc_library(
257    name = "filesystem",
258    srcs = [
259        "java_tools/src/main/cpp/util/file.cc",
260        "java_tools/src/main/cpp/util/path.cc",
261    ] + select({
262        ":windows": [
263            "java_tools/src/main/cpp/util/file_windows.cc",
264            "java_tools/src/main/cpp/util/path_windows.cc",
265        ],
266        "//conditions:default": [
267            "java_tools/src/main/cpp/util/file_posix.cc",
268            "java_tools/src/main/cpp/util/path_posix.cc",
269        ],
270    }),
271    hdrs = [
272        "java_tools/src/main/cpp/util/file.h",
273        "java_tools/src/main/cpp/util/file_platform.h",
274        "java_tools/src/main/cpp/util/path.h",
275        "java_tools/src/main/cpp/util/path_platform.h",
276    ],
277    strip_include_prefix = "java_tools",
278    deps = [
279        ":blaze_exit_code",
280        ":errors",
281        ":logging",
282        ":strings",
283    ] + select({
284        ":windows": [":lib-file"],
285        "//conditions:default": [],
286    }),
287)
288
289cc_library(
290    name = "lib-file",
291    srcs = [
292        "java_tools/src/main/native/windows/file.cc",
293        "java_tools/src/main/native/windows/util.cc",
294    ],
295    hdrs = [
296        "java_tools/src/main/native/windows/file.h",
297        "java_tools/src/main/native/windows/util.h",
298    ],
299    linkopts = [
300        "-DEFAULTLIB:advapi32.lib",
301    ],
302    strip_include_prefix = "java_tools",
303)
304
305cc_library(
306    name = "errors",
307    srcs = select({
308        ":windows": ["java_tools/src/main/cpp/util/errors_windows.cc"],
309        "//conditions:default": ["java_tools/src/main/cpp/util/errors_posix.cc"],
310    }),
311    hdrs = ["java_tools/src/main/cpp/util/errors.h"],
312    strip_include_prefix = "java_tools",
313    deps = [
314        ":logging",
315        ":port",
316        ":strings",
317    ],
318)
319
320cc_library(
321    name = "strings",
322    srcs = ["java_tools/src/main/cpp/util/strings.cc"],
323    hdrs = ["java_tools/src/main/cpp/util/strings.h"],
324    copts = SUPRESSED_WARNINGS,
325    # Automatically propagate the symbol definition to rules depending on this.
326    defines = [
327        "BLAZE_OPENSOURCE",
328    ],
329    strip_include_prefix = "java_tools",
330    deps = [":blaze_exit_code"],
331)
332
333cc_library(
334    name = "blaze_exit_code",
335    hdrs = ["java_tools/src/main/cpp/util/exit_code.h"],
336    copts = SUPRESSED_WARNINGS,
337    strip_include_prefix = "java_tools",
338)
339
340cc_library(
341    name = "port",
342    srcs = ["java_tools/src/main/cpp/util/port.cc"],
343    hdrs = ["java_tools/src/main/cpp/util/port.h"],
344    copts = SUPRESSED_WARNINGS,
345    strip_include_prefix = "java_tools",
346)
347
348cc_library(
349    name = "logging",
350    srcs = ["java_tools/src/main/cpp/util/logging.cc"],
351    hdrs = ["java_tools/src/main/cpp/util/logging.h"],
352    copts = SUPRESSED_WARNINGS,
353    strip_include_prefix = "java_tools",
354    deps = [
355        ":blaze_exit_code",
356        ":strings",
357    ],
358)
359
360cc_library(
361    name = "zlib_client",
362    srcs = ["java_tools/ijar/zlib_client.cc"],
363    hdrs = [
364        "java_tools/ijar/common.h",
365        "java_tools/ijar/zlib_client.h",
366    ],
367    copts = SUPRESSED_WARNINGS,
368    include_prefix = "third_party",
369    strip_include_prefix = "java_tools",
370    deps = ["//java_tools/zlib"],
371)
372
373##################### singlejar
374
375# See comment for ":ijar_cc_binary_main".
376cc_library(
377    name = "singlejar_cc_bin_main",
378    srcs = [
379        "java_tools/src/tools/singlejar/singlejar_main.cc",
380    ],
381    copts = SUPRESSED_WARNINGS,
382    linkopts = select({
383        ":freebsd": ["-lm"],
384        ":openbsd": ["-lm"],
385        "//conditions:default": [],
386    }),
387    linkstatic = 1,  # provides main()
388    deps = [
389        ":combiners",
390        ":diag",
391        ":options",
392        ":output_jar",
393        "//java_tools/zlib",
394    ],
395    alwayslink = 1,
396)
397
398cc_binary(
399    name = "singlejar_cc_bin",
400    linkstatic = 1,
401    visibility = ["//visibility:public"],
402    deps = [":singlejar_cc_bin_main"],
403)
404
405cc_binary(
406    name = "singlejar_local",
407    srcs = [
408        "java_tools/src/tools/singlejar/singlejar_local_main.cc",
409    ],
410    copts = SUPRESSED_WARNINGS,
411    linkopts = select({
412        ":freebsd": ["-lm"],
413        ":openbsd": ["-lm"],
414        "//conditions:default": [],
415    }),
416    linkstatic = 1,
417    visibility = ["//visibility:public"],
418    deps = [
419        ":combiners",
420        ":desugar_checking",
421        ":options",
422        ":output_jar",
423        "//java_tools/zlib",
424    ],
425)
426
427cc_library(
428    name = "combiners",
429    srcs = [
430        "java_tools/src/tools/singlejar/combiners.cc",
431    ],
432    hdrs = [
433        "java_tools/src/tools/singlejar/combiners.h",
434        ":transient_bytes",
435    ],
436    copts = SUPRESSED_WARNINGS,
437    strip_include_prefix = "java_tools",
438    deps = [
439        "//java_tools/zlib",
440    ],
441)
442
443proto_library(
444    name = "desugar_deps_proto",
445    srcs = ["java_tools/src/main/protobuf/desugar_deps.proto"],
446)
447
448cc_proto_library(
449    name = "desugar_deps_cc_proto",
450    deps = [":desugar_deps_proto"],
451)
452
453cc_library(
454    name = "desugar_checking",
455    srcs = ["java_tools/src/tools/singlejar/desugar_checking.cc"],
456    hdrs = ["java_tools/src/tools/singlejar/desugar_checking.h"],
457    copts = SUPRESSED_WARNINGS,
458    strip_include_prefix = "java_tools",
459    deps = [
460        ":combiners",
461        ":desugar_deps_cc_proto",
462    ],
463)
464
465cc_library(
466    name = "diag",
467    hdrs = ["java_tools/src/tools/singlejar/diag.h"],
468    copts = SUPRESSED_WARNINGS,
469    strip_include_prefix = "java_tools",
470    visibility = ["//visibility:private"],
471)
472
473cc_library(
474    name = "singlejar_port",
475    hdrs = ["java_tools/src/tools/singlejar/port.h"],
476    copts = SUPRESSED_WARNINGS,
477    strip_include_prefix = "java_tools",
478    visibility = ["//visibility:private"],
479)
480
481cc_library(
482    name = "mapped_file",
483    srcs = ["java_tools/src/tools/singlejar/mapped_file.cc"],
484    hdrs = ["java_tools/src/tools/singlejar/mapped_file.h"] +
485           select({
486               ":windows": ["java_tools/src/tools/singlejar/mapped_file_windows.inc"],
487               "//conditions:default": ["java_tools/src/tools/singlejar/mapped_file_posix.inc"],
488           }),
489    copts = SUPRESSED_WARNINGS,
490    strip_include_prefix = "java_tools",
491    visibility = ["//visibility:private"],
492    deps = [
493        ":cpp_util",
494        ":diag",
495        ":singlejar_port",
496    ],
497)
498
499cc_library(
500    name = "input_jar",
501    srcs = [
502        "java_tools/src/tools/singlejar/input_jar.cc",
503    ],
504    hdrs = [
505        "java_tools/src/tools/singlejar/input_jar.h",
506        "java_tools/src/tools/singlejar/zip_headers.h",
507    ],
508    copts = SUPRESSED_WARNINGS,
509    strip_include_prefix = "java_tools",
510    deps = [
511        ":diag",
512        ":mapped_file",
513    ],
514)
515
516cc_library(
517    name = "options",
518    srcs = [
519        "java_tools/src/tools/singlejar/options.cc",
520        "java_tools/src/tools/singlejar/options.h",
521    ],
522    hdrs = ["java_tools/src/tools/singlejar/options.h"],
523    copts = SUPRESSED_WARNINGS,
524    strip_include_prefix = "java_tools",
525    deps = [
526        ":diag",
527        ":token_stream",
528    ],
529)
530
531cc_library(
532    name = "output_jar",
533    srcs = [
534        "java_tools/src/tools/singlejar/output_jar.cc",
535        "java_tools/src/tools/singlejar/output_jar.h",
536        ":zip_headers",
537    ],
538    hdrs = ["java_tools/src/tools/singlejar/output_jar.h"],
539    copts = SUPRESSED_WARNINGS,
540    strip_include_prefix = "java_tools",
541    deps = [
542        ":combiners",
543        ":cpp_util",
544        ":diag",
545        ":input_jar",
546        ":mapped_file",
547        ":options",
548        ":singlejar_port",
549        "//java_tools/zlib",
550    ],
551)
552
553cc_library(
554    name = "token_stream",
555    hdrs = ["java_tools/src/tools/singlejar/token_stream.h"],
556    copts = SUPRESSED_WARNINGS,
557    strip_include_prefix = "java_tools",
558    deps = [
559        ":diag",
560        ":filesystem",
561    ],
562)
563
564filegroup(
565    name = "transient_bytes",
566    srcs = [
567        "java_tools/src/tools/singlejar/diag.h",
568        "java_tools/src/tools/singlejar/transient_bytes.h",
569        "java_tools/src/tools/singlejar/zlib_interface.h",
570        ":zip_headers",
571    ],
572)
573
574filegroup(
575    name = "zip_headers",
576    srcs = ["java_tools/src/tools/singlejar/zip_headers.h"],
577)
578
579################### Proguard ###################
580java_import(
581    name = "proguard_import",
582    jars = ["java_tools/third_party/java/proguard/proguard.jar"],
583)
584
585java_binary(
586    name = "proguard",
587    main_class = "proguard.ProGuard",
588    visibility = ["//visibility:public"],
589    runtime_deps = [":proguard_import"],
590)
591
592##################### one_version
593
594# See comment for ":ijar_cc_binary_main".
595cc_library(
596    name = "one_version_cc_bin_main",
597    srcs = [
598        "java_tools/src/tools/one_version/one_version_main.cc",
599    ],
600    copts = SUPRESSED_WARNINGS,
601    linkopts = select({
602        ":freebsd": ["-lm"],
603        ":openbsd": ["-lm"],
604        "//conditions:default": [],
605    }),
606    linkstatic = 1,  # provides main()
607    deps = [
608        ":allowlist",
609        ":duplicate_class_collector",
610        ":input_jar",
611        ":one_version",
612        ":token_stream",
613        "@com_google_absl//absl/container:flat_hash_map",
614        "@com_google_absl//absl/container:flat_hash_set",
615        "@com_google_absl//absl/log:die_if_null",
616        "@com_google_absl//absl/strings",
617    ],
618    alwayslink = 1,
619)
620
621cc_binary(
622    name = "one_version_cc_bin",
623    linkstatic = 1,
624    visibility = ["//visibility:public"],
625    deps = [":one_version_cc_bin_main"],
626)
627
628cc_library(
629    name = "duplicate_class_collector",
630    srcs = ["java_tools/src/tools/one_version/duplicate_class_collector.cc"],
631    hdrs = ["java_tools/src/tools/one_version/duplicate_class_collector.h"],
632    copts = SUPRESSED_WARNINGS,
633    strip_include_prefix = "java_tools",
634    deps = [
635        "@com_google_absl//absl/container:flat_hash_map",
636        "@com_google_absl//absl/strings",
637    ],
638)
639
640cc_library(
641    name = "allowlist",
642    srcs = ["java_tools/src/tools/one_version/allowlist.cc"],
643    hdrs = ["java_tools/src/tools/one_version/allowlist.h"],
644    copts = SUPRESSED_WARNINGS,
645    strip_include_prefix = "java_tools",
646    deps = [
647        ":duplicate_class_collector",
648        "@com_google_absl//absl/container:flat_hash_map",
649        "@com_google_absl//absl/container:flat_hash_set",
650        "@com_google_absl//absl/strings",
651        "@com_google_absl//absl/types:span",
652    ],
653)
654
655cc_library(
656    name = "one_version",
657    srcs = ["java_tools/src/tools/one_version/one_version.cc"],
658    hdrs = ["java_tools/src/tools/one_version/one_version.h"],
659    copts = SUPRESSED_WARNINGS,
660    strip_include_prefix = "java_tools",
661    deps = [
662        ":allowlist",
663        ":duplicate_class_collector",
664        ":input_jar",
665        "@com_google_absl//absl/log:die_if_null",
666        "@com_google_absl//absl/memory",
667        "@com_google_absl//absl/strings",
668    ],
669)
670