blob: a33e6ffd470fe2ad100f94878b08d036b7780329 [file] [log] [blame]
iirinad4651e82019-03-15 03:15:37 -07001package(default_visibility = ["//visibility:public"])
Klaus Aehligd0137212019-11-15 00:45:13 -08002exports_files(glob(["**/*.jar"]))
iirinad4651e82019-03-15 03:15:37 -07003
4licenses(["notice"]) # Apache 2.0
5
iirinaf5a6ee12019-07-23 02:02:24 -07006load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_proto_library")
7load("@rules_java//java:defs.bzl", "java_binary", "java_import", "java_toolchain")
Yannic Bonenberger38fb90c2019-08-23 02:34:28 -07008load("@rules_proto//proto:defs.bzl", "proto_library")
iirinae8260492019-07-03 05:16:09 -07009
Stephan Wolskif1bbe582019-08-27 00:58:23 -070010SUPRESSED_WARNINGS = select({
11 ":windows": [],
12 "//conditions:default": [
13 "-Wno-error",
14 "-Wno-old-style-cast",
15 ],
16})
17
iirinafbeb0c92019-04-25 07:34:14 -070018java_toolchain(
19 name = "toolchain",
iirinab0317492019-04-29 09:26:43 -070020 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"],
iirinafbeb0c92019-04-25 07:34:14 -070021 forcibly_disable_header_compilation = 0,
Jingwen Chenf69d02d2019-05-29 07:33:49 -070022 genclass = [":GenClass"],
iirinab0317492019-04-29 09:26:43 -070023 header_compiler = [":Turbine"],
24 header_compiler_direct = [":TurbineDirect"],
iirinafbeb0c92019-04-25 07:34:14 -070025 ijar = [":ijar"],
iirinaf5a6ee12019-07-23 02:02:24 -070026 jacocorunner = ":jacoco_coverage_runner_filegroup",
iirinab0317492019-04-29 09:26:43 -070027 javabuilder = [":JavaBuilder"],
iirinafbeb0c92019-04-25 07:34:14 -070028 javac = [":javac_jar"],
iirinab0317492019-04-29 09:26:43 -070029 javac_supports_workers = 1,
30 jvm_opts = [
elenairina51421722019-10-01 01:11:57 -070031 # In JDK9 we have seen a ~30% slow down in JavaBuilder performance when using
32 # G1 collector and having compact strings enabled.
33 "-XX:+UseParallelOldGC",
34 "-XX:-CompactStrings",
iirinab0317492019-04-29 09:26:43 -070035 # Allow JavaBuilder to access internal javac APIs.
36 "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
37 "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
38 "--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
39 "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
40 "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
41 "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
42 "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
43 "--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
44
45 # override the javac in the JDK.
46 "--patch-module=java.compiler=$(location :java_compiler_jar)",
47 "--patch-module=jdk.compiler=$(location :jdk_compiler_jar)",
48
49 # quiet warnings from com.google.protobuf.UnsafeUtil,
50 # see: https://github.com/google/protobuf/issues/3781
51 # and: https://github.com/bazelbuild/bazel/issues/5599
52 "--add-opens=java.base/java.nio=ALL-UNNAMED",
53 "--add-opens=java.base/java.lang=ALL-UNNAMED",
54 ],
55 misc = [
56 "-XDskipDuplicateBridges=true",
57 "-g",
58 "-parameters",
59 ],
60 singlejar = [":singlejar"],
61 source_version = "8",
62 target_version = "8",
iirinafbeb0c92019-04-25 07:34:14 -070063 tools = [
64 ":java_compiler_jar",
65 ":jdk_compiler_jar",
66 ],
iirinafbeb0c92019-04-25 07:34:14 -070067)
68
iirina0eec6932019-06-12 07:48:22 -070069# A toolchain that targets java JAVA_LANGUAGE_LEVEL.
70java_toolchain(
71 name = "toolchain_jdk_JAVA_LANGUAGE_LEVEL",
72 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"],
iirina0eec6932019-06-12 07:48:22 -070073 forcibly_disable_header_compilation = 0,
74 genclass = [":GenClass"],
75 header_compiler = [":Turbine"],
76 header_compiler_direct = [":TurbineDirect"],
77 ijar = [":ijar"],
iirinaf5a6ee12019-07-23 02:02:24 -070078 jacocorunner = ":jacoco_coverage_runner_filegroup",
iirina0eec6932019-06-12 07:48:22 -070079 javabuilder = [":JavaBuilder"],
80 javac = [":javac_jar"],
81 javac_supports_workers = 1,
82 jvm_opts = [
elenairina51421722019-10-01 01:11:57 -070083 # In JDK9 we have seen a ~30% slow down in JavaBuilder performance
84 # when using G1 collector and having compact strings enabled.
85 "-XX:+UseParallelOldGC",
86 "-XX:-CompactStrings",
iirina0eec6932019-06-12 07:48:22 -070087 # Allow JavaBuilder to access internal javac APIs.
88 "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
89 "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
90 "--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
91 "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
92 "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
93 "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
94 "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
95 "--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
96
97 # override the javac in the JDK.
98 "--patch-module=java.compiler=$(location :java_compiler_jar)",
99 "--patch-module=jdk.compiler=$(location :jdk_compiler_jar)",
100
101 # quiet warnings from com.google.protobuf.UnsafeUtil,
102 # see: https://github.com/google/protobuf/issues/3781
103 # and: https://github.com/bazelbuild/bazel/issues/5599
104 "--add-opens=java.base/java.nio=ALL-UNNAMED",
105 "--add-opens=java.base/java.lang=ALL-UNNAMED",
106 ],
107 misc = [
108 "-XDskipDuplicateBridges=true",
109 "-g",
110 "-parameters",
111 ],
112 singlejar = [":singlejar"],
113 source_version = "JAVA_LANGUAGE_LEVEL",
114 target_version = "JAVA_LANGUAGE_LEVEL",
115 tools = [
116 ":java_compiler_jar",
117 ":jdk_compiler_jar",
118 ],
iirina0eec6932019-06-12 07:48:22 -0700119)
120
iirinac392dc22019-07-23 06:46:14 -0700121# The new toolchain is using all the pre-built tools, including
122# singlejar and ijar, even on remote execution. This toolchain
123# should be used only when host and execution platform are the
124# same, otherwise the binaries will not work on the execution
125# platform.
126java_toolchain(
127 name = "prebuilt_toolchain",
128 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath"],
iirinac392dc22019-07-23 06:46:14 -0700129 forcibly_disable_header_compilation = 0,
130 genclass = [":GenClass"],
131 header_compiler = [":Turbine"],
132 header_compiler_direct = [":TurbineDirect"],
133 ijar = [":ijar_prebuilt_binary"],
134 jacocorunner = ":jacoco_coverage_runner_filegroup",
135 javabuilder = [":JavaBuilder"],
136 javac = [":javac_jar"],
137 javac_supports_workers = 1,
138 jvm_opts = [
elenairina51421722019-10-01 01:11:57 -0700139 # In JDK9 we have seen a ~30% slow down in JavaBuilder performance when using
140 # G1 collector and having compact strings enabled.
141 "-XX:+UseParallelOldGC",
142 "-XX:-CompactStrings",
iirinac392dc22019-07-23 06:46:14 -0700143 # Allow JavaBuilder to access internal javac APIs.
144 "--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
145 "--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
146 "--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
147 "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
148 "--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
149 "--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
150 "--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
151 "--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
152
153 # override the javac in the JDK.
154 "--patch-module=java.compiler=$(location :java_compiler_jar)",
155 "--patch-module=jdk.compiler=$(location :jdk_compiler_jar)",
156
157 # quiet warnings from com.google.protobuf.UnsafeUtil,
158 # see: https://github.com/google/protobuf/issues/3781
159 # and: https://github.com/bazelbuild/bazel/issues/5599
160 "--add-opens=java.base/java.nio=ALL-UNNAMED",
161 "--add-opens=java.base/java.lang=ALL-UNNAMED",
162 ],
163 misc = [
164 "-XDskipDuplicateBridges=true",
165 "-g",
166 "-parameters",
167 ],
168 singlejar = [":prebuilt_singlejar"],
169 source_version = "8",
170 target_version = "8",
171 tools = [
172 ":java_compiler_jar",
173 ":jdk_compiler_jar",
174 ],
175)
176
iirinad4651e82019-03-15 03:15:37 -0700177filegroup(
iirinad4651e82019-03-15 03:15:37 -0700178 name = "GenClass",
179 srcs = ["java_tools/GenClass_deploy.jar"],
180)
181
iirina3dc59e42019-05-31 06:44:21 -0700182filegroup(
183 name = "jacoco_coverage_runner_filegroup",
184 srcs = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
185)
186
iirinad6545102019-05-21 06:53:59 -0700187java_import(
188 name = "jacoco_coverage_runner",
189 jars = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
190)
191
iirinad4651e82019-03-15 03:15:37 -0700192filegroup(
193 name = "JacocoCoverage",
194 srcs = ["java_tools/JacocoCoverage_jarjar_deploy.jar"],
195)
196
197filegroup(
198 name = "JavaBuilder",
199 srcs = ["java_tools/JavaBuilder_deploy.jar"],
200)
201
202filegroup(
203 name = "Runner",
204 srcs = ["java_tools/Runner_deploy.jar"],
205)
206
207filegroup(
208 name = "VanillaJavaBuilder",
209 srcs = ["java_tools/VanillaJavaBuilder_deploy.jar"],
210)
211
212filegroup(
213 name = "SingleJar",
214 srcs = ["java_tools/bazel-singlejar_deploy.jar"],
215)
216
217filegroup(
218 name = "JarJar",
219 srcs = ["java_tools/jarjar_command_deploy.jar"],
220)
221
222filegroup(
223 name = "Turbine",
224 srcs = ["java_tools/turbine_deploy.jar"],
225)
226
227filegroup(
228 name = "TurbineDirect",
229 srcs = ["java_tools/turbine_direct_binary_deploy.jar"],
230)
231
232filegroup(
233 name = "javac_jar",
234 srcs = ["java_tools/javac-9+181-r4173-1.jar"],
235)
236
237filegroup(
238 name = "jdk_compiler_jar",
239 srcs = ["java_tools/jdk_compiler.jar"],
240)
241
242filegroup(
243 name = "java_compiler_jar",
244 srcs = ["java_tools/java_compiler.jar"],
245)
246
iirina4e001992019-04-26 04:55:47 -0700247java_import(
248 name = "jacoco-agent",
iirinac9522f92019-05-28 02:18:58 -0700249 jars = ["java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.3.jar"],
250 srcjar = "java_tools/third_party/java/jacoco/org.jacoco.agent-0.8.3-src.jar",
iirina4e001992019-04-26 04:55:47 -0700251)
252
253java_import(
254 name = "jacoco-core",
iirinac9522f92019-05-28 02:18:58 -0700255 jars = ["java_tools/third_party/java/jacoco/org.jacoco.core-0.8.3.jar"],
256 srcjar = "java_tools/third_party/java/jacoco/org.jacoco.core-0.8.3-src.jar",
iirina4e001992019-04-26 04:55:47 -0700257 exports = [
258 ":asm",
259 ":asm-commons",
260 ":asm-tree",
261 ],
262)
263
264filegroup(
265 name = "jacoco-core-jars",
iirinac9522f92019-05-28 02:18:58 -0700266 srcs = ["java_tools/third_party/java/jacoco/org.jacoco.core-0.8.3.jar"],
iirina4e001992019-04-26 04:55:47 -0700267)
268
269java_import(
270 name = "jacoco-report",
iirinac9522f92019-05-28 02:18:58 -0700271 jars = ["java_tools/third_party/java/jacoco/org.jacoco.report-0.8.3.jar"],
272 srcjar = "java_tools/third_party/java/jacoco/org.jacoco.report-sources.jar",
iirina4e001992019-04-26 04:55:47 -0700273 exports = [
iirina4e001992019-04-26 04:55:47 -0700274 ":asm",
iirinab0317492019-04-29 09:26:43 -0700275 ":jacoco-core",
iirina4e001992019-04-26 04:55:47 -0700276 ],
277)
278
279java_import(
280 name = "bazel-jacoco-agent",
iirinac9522f92019-05-28 02:18:58 -0700281 jars = ["java_tools/third_party/java/jacoco/jacocoagent-0.8.3.jar"],
iirina4e001992019-04-26 04:55:47 -0700282)
283
284java_import(
285 name = "bazel-jacoco-agent-neverlink",
iirinac9522f92019-05-28 02:18:58 -0700286 jars = ["java_tools/third_party/java/jacoco/jacocoagent-0.8.3.jar"],
iirina4e001992019-04-26 04:55:47 -0700287 neverlink = 1,
288)
289
290java_import(
291 name = "asm",
292 jars = ["java_tools/third_party/java/jacoco/asm-7.0.jar"],
293 srcjar = "java_tools/third_party/java/jacoco/asm-7.0-sources.jar",
294)
295
296java_import(
297 name = "asm-commons",
298 jars = ["java_tools/third_party/java/jacoco/asm-commons-7.0.jar"],
299 srcjar = "java_tools/third_party/java/jacoco/asm-commons-7.0-sources.jar",
300 runtime_deps = [":asm-tree"],
301)
302
303java_import(
304 name = "asm-tree",
305 jars = ["java_tools/third_party/java/jacoco/asm-tree-7.0.jar"],
306 srcjar = "java_tools/third_party/java/jacoco/asm-tree-7.0-sources.jar",
307 runtime_deps = [":asm"],
308)
309
iirinad4651e82019-03-15 03:15:37 -0700310config_setting(
311 name = "remote",
312 values = {"define": "EXECUTOR=remote"},
313)
314
315config_setting(
316 name = "linux_x86_64",
317 values = {"cpu": "k8"},
318)
319
320config_setting(
321 name = "darwin",
322 values = {"cpu": "darwin"},
323)
324
325config_setting(
326 name = "darwin_x86_64",
327 values = {"cpu": "darwin_x86_64"},
328)
329
330config_setting(
331 name = "windows",
332 values = {"cpu": "x64_windows"},
333)
334
iirinae4ac6162019-04-08 01:37:20 -0700335config_setting(
336 name = "freebsd",
337 values = {"cpu": "freebsd"},
338 visibility = ["//visibility:public"],
339)
340
iirinad4651e82019-03-15 03:15:37 -0700341alias(
iirinaebdbdcd2019-04-09 04:43:08 -0700342 name = "singlejar",
343 actual = select({
iirinab0317492019-04-29 09:26:43 -0700344 "//:remote": ":singlejar_cc_bin",
345 "//conditions:default": ":singlejar_prebuilt_or_cc_binary",
346 }),
iirinaebdbdcd2019-04-09 04:43:08 -0700347)
348
349alias(
350 name = "singlejar_prebuilt_or_cc_binary",
351 actual = select({
iirinab0317492019-04-29 09:26:43 -0700352 ":linux_x86_64": "java_tools/src/tools/singlejar/singlejar_local",
353 ":darwin": "java_tools/src/tools/singlejar/singlejar_local",
354 ":darwin_x86_64": "java_tools/src/tools/singlejar/singlejar_local",
355 ":windows": "java_tools/src/tools/singlejar/singlejar_local.exe",
356 "//conditions:default": "singlejar_cc_bin",
357 }),
iirinaebdbdcd2019-04-09 04:43:08 -0700358)
359
360alias(
iirinac392dc22019-07-23 06:46:14 -0700361 name = "prebuilt_singlejar",
362 actual = select({
363 ":windows": "java_tools/src/tools/singlejar/singlejar_local.exe",
364 "//conditions:default": "java_tools/src/tools/singlejar/singlejar_local",
365 }),
366)
367
368alias(
iirinab0317492019-04-29 09:26:43 -0700369 name = "ijar",
370 actual = select({
371 ":remote": ":ijar_cc_binary",
372 "//conditions:default": ":prebuilt_binary_or_cc_binary",
373 }),
iirinad4651e82019-03-15 03:15:37 -0700374)
375
376alias(
iirinab0317492019-04-29 09:26:43 -0700377 name = "prebuilt_binary_or_cc_binary",
378 actual = select({
379 ":linux_x86_64": ":ijar_prebuilt_binary",
380 ":darwin": ":ijar_prebuilt_binary",
381 ":darwin_x86_64": ":ijar_prebuilt_binary",
382 ":windows": ":ijar_prebuilt_binary",
383 "//conditions:default": ":ijar_cc_binary",
384 }),
iirinad4651e82019-03-15 03:15:37 -0700385)
386
387filegroup(
388 name = "ijar_prebuilt_binary",
389 srcs = select({
iirinab0317492019-04-29 09:26:43 -0700390 ":windows": ["java_tools/ijar/ijar.exe"],
391 "//conditions:default": ["java_tools/ijar/ijar"],
392 }),
iirinad4651e82019-03-15 03:15:37 -0700393)
394
Yun Peng2bdd3282019-07-23 05:46:01 -0700395cc_library(
396 name = "malloc",
397)
398
iirinad4651e82019-03-15 03:15:37 -0700399cc_binary(
400 name = "ijar_cc_binary",
401 srcs = [
402 "java_tools/ijar/classfile.cc",
403 "java_tools/ijar/ijar.cc",
404 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700405 copts = SUPRESSED_WARNINGS,
Yun Peng2bdd3282019-07-23 05:46:01 -0700406 # Remove dependency on @bazel_tools//tools/cpp:malloc, which avoid /Iexternal/tools being used
407 # in compiling actions.
408 malloc = ":malloc",
iirinad4651e82019-03-15 03:15:37 -0700409 deps = [":zip"],
410)
411
412cc_library(
413 name = "zip",
414 srcs = [
415 "java_tools/ijar/zip.cc",
416 ] + select({
417 ":windows": [
418 "java_tools/ijar/mapped_file_windows.cc",
419 ],
420 "//conditions:default": [
421 "java_tools/ijar/mapped_file_unix.cc",
422 ],
423 }),
424 hdrs = [
425 "java_tools/ijar/common.h",
426 "java_tools/ijar/mapped_file.h",
427 "java_tools/ijar/zip.h",
428 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700429 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700430 include_prefix = "third_party",
431 strip_include_prefix = "java_tools",
iirinad4651e82019-03-15 03:15:37 -0700432 deps = [
433 ":platform_utils",
434 ":zlib_client",
435 ] + select({
436 ":windows": [
437 ":errors",
438 ":filesystem",
439 ":logging",
440 ":strings",
441 ],
442 "//conditions:default": [
443 ],
444 }),
iirinad4651e82019-03-15 03:15:37 -0700445)
446
447cc_library(
448 name = "platform_utils",
449 srcs = ["java_tools/ijar/platform_utils.cc"],
450 hdrs = [
451 "java_tools/ijar/common.h",
452 "java_tools/ijar/platform_utils.h",
453 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700454 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700455 include_prefix = "third_party",
456 strip_include_prefix = "java_tools",
iirinad4651e82019-03-15 03:15:37 -0700457 visibility = ["//visibility:private"],
458 deps = [
459 ":errors",
460 ":filesystem",
461 ":logging",
462 ],
iirinad4651e82019-03-15 03:15:37 -0700463)
464
465cc_library(
iirinae4ac6162019-04-08 01:37:20 -0700466 name = "cpp_util",
467 hdrs = [
468 "java_tools/src/main/cpp/util/errors.h",
469 "java_tools/src/main/cpp/util/file.h",
470 "java_tools/src/main/cpp/util/file_platform.h",
471 "java_tools/src/main/cpp/util/md5.h",
472 "java_tools/src/main/cpp/util/numbers.h",
473 "java_tools/src/main/cpp/util/path.h",
474 "java_tools/src/main/cpp/util/path_platform.h",
475 "java_tools/src/main/cpp/util/port.h",
476 ],
iirinab0317492019-04-29 09:26:43 -0700477 strip_include_prefix = "java_tools",
iirinae4ac6162019-04-08 01:37:20 -0700478 visibility = ["//visibility:public"],
479 deps = [
480 ":blaze_exit_code",
481 ":errors",
482 ":filesystem",
483 ":md5",
484 ":numbers",
485 ":port",
486 ":strings",
487 ],
iirinae4ac6162019-04-08 01:37:20 -0700488)
489
490cc_library(
491 name = "md5",
492 srcs = ["java_tools/src/main/cpp/util/md5.cc"],
493 hdrs = ["java_tools/src/main/cpp/util/md5.h"],
494 strip_include_prefix = "java_tools",
495)
496
497cc_library(
498 name = "numbers",
499 srcs = ["java_tools/src/main/cpp/util/numbers.cc"],
500 hdrs = ["java_tools/src/main/cpp/util/numbers.h"],
iirinae4ac6162019-04-08 01:37:20 -0700501 strip_include_prefix = "java_tools",
iirinab0317492019-04-29 09:26:43 -0700502 deps = [":strings"],
iirinae4ac6162019-04-08 01:37:20 -0700503)
504
505cc_library(
iirinad4651e82019-03-15 03:15:37 -0700506 name = "filesystem",
507 srcs = [
508 "java_tools/src/main/cpp/util/file.cc",
509 "java_tools/src/main/cpp/util/path.cc",
510 ] + select({
511 ":windows": [
512 "java_tools/src/main/cpp/util/file_windows.cc",
513 "java_tools/src/main/cpp/util/path_windows.cc",
514 ],
515 "//conditions:default": [
516 "java_tools/src/main/cpp/util/file_posix.cc",
517 "java_tools/src/main/cpp/util/path_posix.cc",
518 ],
519 }),
520 hdrs = [
521 "java_tools/src/main/cpp/util/file.h",
522 "java_tools/src/main/cpp/util/file_platform.h",
523 "java_tools/src/main/cpp/util/path.h",
524 "java_tools/src/main/cpp/util/path_platform.h",
525 ],
iirinab0317492019-04-29 09:26:43 -0700526 strip_include_prefix = "java_tools",
iirinad4651e82019-03-15 03:15:37 -0700527 deps = [
528 ":blaze_exit_code",
529 ":errors",
530 ":logging",
531 ":strings",
532 ] + select({
533 ":windows": [":lib-file"],
534 "//conditions:default": [],
535 }),
iirinad4651e82019-03-15 03:15:37 -0700536)
537
538cc_library(
539 name = "lib-file",
iirinaf5a6ee12019-07-23 02:02:24 -0700540 srcs = [
541 "java_tools/src/main/native/windows/file.cc",
542 "java_tools/src/main/native/windows/util.cc",
543 ],
544 hdrs = [
545 "java_tools/src/main/native/windows/file.h",
546 "java_tools/src/main/native/windows/util.h",
547 ],
iirinad4651e82019-03-15 03:15:37 -0700548 strip_include_prefix = "java_tools",
549)
550
551cc_library(
552 name = "lib-util",
553 srcs = ["java_tools/src/main/native/windows/util.cc"],
554 hdrs = ["java_tools/src/main/native/windows/util.h"],
555 strip_include_prefix = "java_tools",
556)
557
558cc_library(
559 name = "errors",
560 srcs = select({
561 ":windows": ["java_tools/src/main/cpp/util/errors_windows.cc"],
562 "//conditions:default": ["java_tools/src/main/cpp/util/errors_posix.cc"],
563 }),
564 hdrs = ["java_tools/src/main/cpp/util/errors.h"],
iirinab0317492019-04-29 09:26:43 -0700565 strip_include_prefix = "java_tools",
iirinad4651e82019-03-15 03:15:37 -0700566 deps = [
567 ":logging",
568 ":port",
569 ":strings",
570 ],
iirinad4651e82019-03-15 03:15:37 -0700571)
572
573cc_library(
574 name = "strings",
575 srcs = ["java_tools/src/main/cpp/util/strings.cc"],
576 hdrs = ["java_tools/src/main/cpp/util/strings.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700577 copts = SUPRESSED_WARNINGS,
iirinad4651e82019-03-15 03:15:37 -0700578 # Automatically propagate the symbol definition to rules depending on this.
579 defines = [
580 "BLAZE_OPENSOURCE",
581 ],
iirinad4651e82019-03-15 03:15:37 -0700582 strip_include_prefix = "java_tools",
iirinab0317492019-04-29 09:26:43 -0700583 deps = [":blaze_exit_code"],
iirinad4651e82019-03-15 03:15:37 -0700584)
585
586cc_library(
587 name = "blaze_exit_code",
588 hdrs = ["java_tools/src/main/cpp/util/exit_code.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700589 copts = SUPRESSED_WARNINGS,
iirinad4651e82019-03-15 03:15:37 -0700590 strip_include_prefix = "java_tools",
591)
592
iirinad4651e82019-03-15 03:15:37 -0700593cc_library(
594 name = "port",
595 srcs = ["java_tools/src/main/cpp/util/port.cc"],
596 hdrs = ["java_tools/src/main/cpp/util/port.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700597 copts = SUPRESSED_WARNINGS,
iirinad4651e82019-03-15 03:15:37 -0700598 strip_include_prefix = "java_tools",
599)
600
601cc_library(
602 name = "logging",
603 srcs = ["java_tools/src/main/cpp/util/logging.cc"],
604 hdrs = ["java_tools/src/main/cpp/util/logging.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700605 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700606 strip_include_prefix = "java_tools",
iirinad4651e82019-03-15 03:15:37 -0700607 deps = [
608 ":blaze_exit_code",
609 ":strings",
610 ],
iirinad4651e82019-03-15 03:15:37 -0700611)
612
613cc_library(
614 name = "zlib_client",
615 srcs = ["java_tools/ijar/zlib_client.cc"],
616 hdrs = [
617 "java_tools/ijar/common.h",
618 "java_tools/ijar/zlib_client.h",
619 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700620 copts = SUPRESSED_WARNINGS,
iirinad4651e82019-03-15 03:15:37 -0700621 include_prefix = "third_party",
iirinab0317492019-04-29 09:26:43 -0700622 strip_include_prefix = "java_tools",
623 deps = ["//java_tools/zlib"],
iirinad4651e82019-03-15 03:15:37 -0700624)
iirinae4ac6162019-04-08 01:37:20 -0700625
626##################### singlejar
627
628cc_binary(
iirinaebdbdcd2019-04-09 04:43:08 -0700629 name = "singlejar_cc_bin",
iirinae4ac6162019-04-08 01:37:20 -0700630 srcs = [
631 "java_tools/src/tools/singlejar/singlejar_main.cc",
632 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700633 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700634 linkopts = select({
635 ":freebsd": ["-lm"],
636 "//conditions:default": [],
637 }),
638 linkstatic = 1,
Yun Peng2bdd3282019-07-23 05:46:01 -0700639 # Remove dependency on @bazel_tools//tools/cpp:malloc, which avoid /Iexternal/tools being used
640 # in compiling actions.
641 malloc = ":malloc",
iirinae4ac6162019-04-08 01:37:20 -0700642 visibility = ["//visibility:public"],
643 deps = [
644 ":options",
645 ":output_jar",
646 "//java_tools/zlib",
647 ],
648)
649
650cc_binary(
651 name = "singlejar_local",
652 srcs = [
653 "java_tools/src/tools/singlejar/singlejar_local_main.cc",
654 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700655 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700656 linkopts = select({
657 ":freebsd": ["-lm"],
658 "//conditions:default": [],
659 }),
660 linkstatic = 1,
661 visibility = ["//visibility:public"],
662 deps = [
663 ":combiners",
664 ":desugar_checking",
665 ":options",
666 ":output_jar",
667 "//java_tools/zlib",
668 ],
669)
670
671cc_library(
672 name = "combiners",
673 srcs = [
674 "java_tools/src/tools/singlejar/combiners.cc",
iirinaebdbdcd2019-04-09 04:43:08 -0700675 ],
676 hdrs = [
677 "java_tools/src/tools/singlejar/combiners.h",
iirinae4ac6162019-04-08 01:37:20 -0700678 ":transient_bytes",
679 ":zip_headers",
680 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700681 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700682 strip_include_prefix = "java_tools",
683 deps = [
684 "//java_tools/zlib",
685 ],
686)
687
688proto_library(
iirinab0317492019-04-29 09:26:43 -0700689 name = "desugar_deps_proto",
690 srcs = ["java_tools/src/main/protobuf/desugar_deps.proto"],
iirinae4ac6162019-04-08 01:37:20 -0700691)
692
693cc_proto_library(
694 name = "desugar_deps_cc_proto",
695 deps = [":desugar_deps_proto"],
696)
697
698cc_library(
699 name = "desugar_checking",
700 srcs = ["java_tools/src/tools/singlejar/desugar_checking.cc"],
701 hdrs = ["java_tools/src/tools/singlejar/desugar_checking.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700702 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700703 strip_include_prefix = "java_tools",
704 deps = [
705 ":combiners",
706 ":desugar_deps_cc_proto",
707 ],
708)
709
710cc_library(
711 name = "diag",
712 hdrs = ["java_tools/src/tools/singlejar/diag.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700713 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700714 strip_include_prefix = "java_tools",
715 visibility = ["//visibility:private"],
716)
717
718cc_library(
719 name = "singlejar_port",
720 hdrs = ["java_tools/src/tools/singlejar/port.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700721 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700722 strip_include_prefix = "java_tools",
723 visibility = ["//visibility:private"],
724)
725
726cc_library(
727 name = "mapped_file",
iirinaebdbdcd2019-04-09 04:43:08 -0700728 srcs = ["java_tools/src/tools/singlejar/mapped_file.cc"],
729 hdrs = ["java_tools/src/tools/singlejar/mapped_file.h"] +
iirinab0317492019-04-29 09:26:43 -0700730 select({
731 ":windows": ["java_tools/src/tools/singlejar/mapped_file_windows.inc"],
732 "//conditions:default": ["java_tools/src/tools/singlejar/mapped_file_posix.inc"],
733 }),
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700734 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700735 strip_include_prefix = "java_tools",
iirinab0317492019-04-29 09:26:43 -0700736 visibility = ["//visibility:private"],
iirinae4ac6162019-04-08 01:37:20 -0700737 deps = [
iirinab0317492019-04-29 09:26:43 -0700738 ":cpp_util",
iirinae4ac6162019-04-08 01:37:20 -0700739 ":diag",
740 ":singlejar_port",
iirinae4ac6162019-04-08 01:37:20 -0700741 ],
742)
743
744cc_library(
745 name = "input_jar",
746 srcs = [
747 "java_tools/src/tools/singlejar/input_jar.cc",
748 ],
749 hdrs = [
750 "java_tools/src/tools/singlejar/input_jar.h",
751 "java_tools/src/tools/singlejar/zip_headers.h",
752 ],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700753 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700754 strip_include_prefix = "java_tools",
iirinae4ac6162019-04-08 01:37:20 -0700755 deps = [
756 ":diag",
757 ":mapped_file",
758 ],
iirinae4ac6162019-04-08 01:37:20 -0700759)
760
761cc_library(
762 name = "options",
763 srcs = [
764 "java_tools/src/tools/singlejar/options.cc",
765 "java_tools/src/tools/singlejar/options.h",
766 ],
767 hdrs = ["java_tools/src/tools/singlejar/options.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700768 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700769 strip_include_prefix = "java_tools",
iirinae4ac6162019-04-08 01:37:20 -0700770 deps = [
771 ":diag",
772 ":token_stream",
773 ],
iirinae4ac6162019-04-08 01:37:20 -0700774)
775
776cc_library(
777 name = "output_jar",
778 srcs = [
779 "java_tools/src/tools/singlejar/output_jar.cc",
780 "java_tools/src/tools/singlejar/output_jar.h",
781 ":zip_headers",
782 ],
783 hdrs = ["java_tools/src/tools/singlejar/output_jar.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700784 copts = SUPRESSED_WARNINGS,
iirinab0317492019-04-29 09:26:43 -0700785 strip_include_prefix = "java_tools",
iirinae4ac6162019-04-08 01:37:20 -0700786 deps = [
787 ":combiners",
iirinab0317492019-04-29 09:26:43 -0700788 ":cpp_util",
iirinae4ac6162019-04-08 01:37:20 -0700789 ":diag",
790 ":input_jar",
791 ":mapped_file",
792 ":options",
793 ":singlejar_port",
iirinae4ac6162019-04-08 01:37:20 -0700794 "//java_tools/zlib",
795 ],
iirinae4ac6162019-04-08 01:37:20 -0700796)
797
798cc_library(
799 name = "token_stream",
800 hdrs = ["java_tools/src/tools/singlejar/token_stream.h"],
Stephan Wolskif1bbe582019-08-27 00:58:23 -0700801 copts = SUPRESSED_WARNINGS,
iirinae4ac6162019-04-08 01:37:20 -0700802 strip_include_prefix = "java_tools",
iirinaf5a6ee12019-07-23 02:02:24 -0700803 deps = [
804 ":diag",
805 ":filesystem",
806 ],
iirinae4ac6162019-04-08 01:37:20 -0700807)
808
809filegroup(
810 name = "transient_bytes",
811 srcs = [
812 "java_tools/src/tools/singlejar/diag.h",
813 "java_tools/src/tools/singlejar/transient_bytes.h",
814 "java_tools/src/tools/singlejar/zlib_interface.h",
815 ":zip_headers",
816 ],
817)
818
819filegroup(
820 name = "zip_headers",
821 srcs = ["java_tools/src/tools/singlejar/zip_headers.h"],
822)
iirinaf50b8a42019-05-13 07:00:26 -0700823
iirinaf50b8a42019-05-13 07:00:26 -0700824################### Proguard ###################
825java_import(
826 name = "proguard_import",
827 jars = ["java_tools/third_party/java/proguard/proguard.jar"],
828)
829
830java_binary(
831 name = "proguard",
832 main_class = "proguard.ProGuard",
iirinaf50b8a42019-05-13 07:00:26 -0700833 visibility = ["//visibility:public"],
iirinaf5a6ee12019-07-23 02:02:24 -0700834 runtime_deps = [":proguard_import"],
iirinaf50b8a42019-05-13 07:00:26 -0700835)