blob: fb24b3ea2446547212b51505e767e8cd7aae50d6 [file] [log] [blame]
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +01001package(default_visibility = ["//visibility:public"])
2
lberki528a1ea2017-07-13 17:11:18 +02003# TODO(lberki): Remove this once java_toolchain_alias and java_runtime_alias are
4# in a Bazel release
5load("//tools/jdk:alias_rules.bzl", "java_runtime_alias", "java_toolchain_alias")
6
7java_runtime_alias(name = "current_java_runtime")
8
9java_toolchain_alias(name = "current_java_toolchain")
10
Damien Martin-Guillerez0ad9f5e2016-04-20 13:58:08 +000011config_setting(
12 name = "jdk7",
13 values = {"define": "JAVA_VERSION=1.7"},
14)
15
16genrule(
17 name = "BUILD-jdk7",
18 srcs = [":BUILD"],
19 outs = ["BUILD.jdk7"],
xingao8df71b52017-04-03 15:25:18 +000020 cmd = "sed -e 's/_version = \"8\"/_version = \"7\"/' -e 's/javac_supports_workers = 1/javac_supports_workers = 0/' -e 's/forcibly_disable_header_compilation = 0/forcibly_disable_header_compilation = 1/g' -e 's/:JavaBuilder_deploy/:VanillaJavaBuilder_deploy/' $< > $@",
Damien Martin-Guillerez0ad9f5e2016-04-20 13:58:08 +000021)
22
23filegroup(
24 name = "BUILD-jdk",
25 srcs = select({
26 ":jdk7": [":BUILD-jdk7"],
27 "//conditions:default": [":BUILD"],
28 }),
29)
30
Ulf Adams27085f42016-10-06 08:51:47 +000031alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010032 name = "jni_header",
Ulf Adamsc8510b12017-02-14 10:27:11 +000033 actual = "@local_jdk//:jni_header",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010034)
35
Ulf Adams27085f42016-10-06 08:51:47 +000036alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010037 name = "jni_md_header-darwin",
Ulf Adamsc8510b12017-02-14 10:27:11 +000038 actual = "@local_jdk//:jni_md_header-darwin",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010039)
40
Ulf Adams27085f42016-10-06 08:51:47 +000041alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010042 name = "jni_md_header-linux",
Ulf Adamsc8510b12017-02-14 10:27:11 +000043 actual = "@local_jdk//:jni_md_header-linux",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010044)
45
Ulf Adams27085f42016-10-06 08:51:47 +000046alias(
pcloudy178e03e92017-06-27 10:32:46 +020047 name = "jni_md_header-windows",
48 actual = "@local_jdk//:jni_md_header-windows",
49)
50
51alias(
Doug Rabson709bc612015-08-25 14:12:00 +000052 name = "jni_md_header-freebsd",
Ulf Adamsc8510b12017-02-14 10:27:11 +000053 actual = "@local_jdk//:jni_md_header-freebsd",
Doug Rabson709bc612015-08-25 14:12:00 +000054)
55
Ulf Adams27085f42016-10-06 08:51:47 +000056alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010057 name = "java",
Ulf Adamsc8510b12017-02-14 10:27:11 +000058 actual = "@local_jdk//:java",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +010059)
60
Ulf Adams27085f42016-10-06 08:51:47 +000061alias(
Damien Martin-Guillerez0bf90f72015-06-11 09:20:59 +000062 name = "jar",
Ulf Adamsc8510b12017-02-14 10:27:11 +000063 actual = "@local_jdk//:jar",
Damien Martin-Guillerez0bf90f72015-06-11 09:20:59 +000064)
65
Ulf Adams27085f42016-10-06 08:51:47 +000066alias(
Damien Martin-Guillerez0bf90f72015-06-11 09:20:59 +000067 name = "javac",
Ulf Adamsc8510b12017-02-14 10:27:11 +000068 actual = "@local_jdk//:javac",
Damien Martin-Guillerez0bf90f72015-06-11 09:20:59 +000069)
70
Lukacs Berkib35e25d2016-02-10 16:44:54 +000071# On Windows, executables end in ".exe", but the label we reach it through
72# must be platform-independent. Thus, we create a little filegroup that
73# contains the appropriate platform-dependent file.
74filegroup(
75 name = "ijar",
xingao1f0f1f12017-11-01 13:03:40 -040076 srcs = select({
77 "//src:remote": ["//third_party/ijar:ijar"],
78 "//conditions:default": glob(["ijar/*"]),
79 }),
Lukacs Berkib35e25d2016-02-10 16:44:54 +000080)
81
xingao202d5912017-06-01 19:23:29 +020082# On Windows, Java implementation of singlejar is used. We create a little
83# filegroup that contains the appropriate platform-dependent file.
84# Once https://github.com/bazelbuild/bazel/issues/2241 is fixed (that is,
85# the native singlejar is used on windows), this file group can be reused since
86# on Windows, executables end in ".exe", but the label we reach it through
87# must be platform-independent.
88filegroup(
89 name = "singlejar",
xingao1f0f1f12017-11-01 13:03:40 -040090 srcs = select({
91 "//src:remote": ["//src/tools/singlejar:singlejar"],
92 "//conditions:default": glob(["singlejar/*"]),
93 }),
xingao202d5912017-06-01 19:23:29 +020094)
95
xingao8df71b52017-04-03 15:25:18 +000096filegroup(
97 name = "genclass",
98 srcs = ["//tools/jdk:GenClass_deploy.jar"],
99)
100
101filegroup(
102 name = "turbine",
103 srcs = ["//tools/jdk:turbine_deploy.jar"],
104)
105
106filegroup(
xingao8df71b52017-04-03 15:25:18 +0000107 name = "javabuilder",
108 srcs = ["//tools/jdk:JavaBuilder_deploy.jar"],
109)
110
111filegroup(
112 name = "vanillajavabuilder",
113 srcs = ["//tools/jdk:VanillaJavaBuilder_deploy.jar"],
114)
115
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100116BOOTCLASS_JARS = [
117 "rt.jar",
118 "resources.jar",
119 "jsse.jar",
120 "jce.jar",
121 "charsets.jar",
122]
123
Ulf Adams27085f42016-10-06 08:51:47 +0000124alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100125 name = "bootclasspath",
Ulf Adamsc8510b12017-02-14 10:27:11 +0000126 actual = "@local_jdk//:bootclasspath",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100127)
128
Ulf Adams27085f42016-10-06 08:51:47 +0000129alias(
Liam Miller-Cushon8153cb82017-02-17 03:42:18 +0000130 name = "extclasspath",
Ulf Adamsc8510b12017-02-14 10:27:11 +0000131 actual = "@local_jdk//:extdir",
Liam Miller-Cushon22218602015-05-19 17:23:01 +0000132)
133
Irina Iancuc9a75d22017-02-21 13:45:20 +0000134# TODO(cushon): migrate to extclasspath and delete
135alias(
136 name = "extdir",
137 actual = "@local_jdk//:extdir",
138)
139
Liam Miller-Cushon22218602015-05-19 17:23:01 +0000140filegroup(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100141 name = "langtools",
Liam Miller-Cushon38949b82017-05-08 10:18:38 -0400142 srcs = ["//third_party/java/jdk/langtools:javac_jar"],
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100143)
144
145java_import(
146 name = "langtools-neverlink",
Liam Miller-Cushon1ed3c472015-06-19 00:35:26 +0000147 jars = [":langtools"],
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100148 neverlink = 1,
149)
150
Ulf Adams27085f42016-10-06 08:51:47 +0000151alias(
Philipp Wollermannc8db70c2015-08-21 13:35:10 +0000152 name = "jre",
Ulf Adamsc8510b12017-02-14 10:27:11 +0000153 actual = "@local_jdk//:jre",
Philipp Wollermannc8db70c2015-08-21 13:35:10 +0000154)
155
Ulf Adams27085f42016-10-06 08:51:47 +0000156alias(
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100157 name = "jdk",
Ulf Adamsc8510b12017-02-14 10:27:11 +0000158 actual = "@local_jdk//:jdk",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100159)
160
161java_toolchain(
162 name = "toolchain",
Liam Miller-Cushon3ee570f2016-04-18 20:44:30 +0000163 bootclasspath = [":bootclasspath"],
ajmichael36d52672017-08-16 23:52:22 +0200164 compatible_javacopts = {
165 # Restrict protos to Java 7 so that they are compatible with Android.
166 "proto": [
167 "-source",
168 "7",
169 "-target",
170 "7",
171 "-XDallowBetterNullChecks=false",
172 ],
173 },
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100174 encoding = "UTF-8",
Liam Miller-Cushon8153cb82017-02-17 03:42:18 +0000175 extclasspath = [":extclasspath"],
Liam Miller-Cushon7a1ea782017-02-21 20:59:49 +0000176 forcibly_disable_header_compilation = 0,
xingao8df71b52017-04-03 15:25:18 +0000177 genclass = ["@bazel_tools//tools/jdk:genclass"],
178 header_compiler = ["@bazel_tools//tools/jdk:turbine"],
Liam Miller-Cushon3ee570f2016-04-18 20:44:30 +0000179 ijar = ["@bazel_tools//tools/jdk:ijar"],
xingao8df71b52017-04-03 15:25:18 +0000180 javabuilder = ["@bazel_tools//tools/jdk:javabuilder"],
Liam Miller-Cushon38949b82017-05-08 10:18:38 -0400181 javac = ["//third_party/java/jdk/langtools:javac_jar"],
Philipp Wollermann490f2502016-07-29 13:04:16 +0000182 javac_supports_workers = 1,
Philipp Wollermann74cb8c72016-07-15 14:01:37 +0000183 jvm_opts = [
184 "-XX:+TieredCompilation",
185 "-XX:TieredStopAtLevel=1",
cushonc5358e52017-07-12 05:38:46 +0200186 "-Xbootclasspath/p:$(location //third_party/java/jdk/langtools:javac_jar)",
Philipp Wollermann74cb8c72016-07-15 14:01:37 +0000187 ],
Liam Miller-Cushon9e3f9ce2017-02-06 19:08:08 +0000188 misc = [
189 "-XDskipDuplicateBridges=true",
cushonff1bdb02017-08-23 01:11:24 +0200190 "-g",
191 "-parameters",
Liam Miller-Cushon9e3f9ce2017-02-06 19:08:08 +0000192 ],
xingao202d5912017-06-01 19:23:29 +0200193 singlejar = ["@bazel_tools//tools/jdk:singlejar"],
Damien Martin-Guillerez9c5deb62015-09-15 07:38:26 +0000194 source_version = "8",
195 target_version = "8",
Han-Wen Nienhuysd08b27f2015-02-25 16:45:20 +0100196)
Damien Martin-Guillerezbfcb7f32015-02-19 13:18:11 +0000197
Damien Martin-Guillerez5cbd5a42015-03-24 21:55:19 +0000198filegroup(
199 name = "srcs",
Michael Staib6817a6f2015-10-05 15:58:23 +0000200 srcs = [
Damien Martin-Guillerez0ad9f5e2016-04-20 13:58:08 +0000201 "BUILD-jdk", # Tools are build from the workspace for tests.
lberki528a1ea2017-07-13 17:11:18 +0200202 "alias_rules.bzl",
Michael Staib6817a6f2015-10-05 15:58:23 +0000203 "proguard_whitelister.py",
204 "proguard_whitelister_test.py",
205 "proguard_whitelister_test_input.cfg",
206 ],
Damien Martin-Guillerez5cbd5a42015-03-24 21:55:19 +0000207)
Damien Martin-Guillerezab13f682015-07-28 08:19:32 +0000208
209filegroup(
210 name = "package-srcs",
211 srcs = glob(["**"]),
212)
Michael Staib6817a6f2015-10-05 15:58:23 +0000213
214py_binary(
215 name = "proguard_whitelister",
216 srcs = [
217 "proguard_whitelister.py",
218 ],
219 deps = [
220 "//third_party/py/gflags",
221 ],
222)
223
224py_test(
225 name = "proguard_whitelister_test",
226 srcs = ["proguard_whitelister_test.py"],
227 data = ["proguard_whitelister_test_input.cfg"],
228 deps = [
229 ":proguard_whitelister",
230 ],
231)
Yue Gan4a753492016-12-20 04:54:55 +0000232
233# For java coverage
234alias(
235 name = "jacoco-blaze-agent",
236 actual = "//third_party/java/jacoco:blaze-agent",
237)
238
Damien Martin-Guillerez39e5a462016-12-20 10:58:17 +0000239java_import(
Yue Gan4a753492016-12-20 04:54:55 +0000240 name = "JacocoCoverage",
Damien Martin-Guillerez39e5a462016-12-20 10:58:17 +0000241 jars = [":JacocoCoverage_deploy.jar"],
Yue Gan4a753492016-12-20 04:54:55 +0000242)