blob: 704bf9f45b826a2d8b56643c90d089cb88c9793d [file] [log] [blame]
Sasha Smundak06a12e52016-07-15 17:35:51 +00001# Description:
2# singlejar C++ implementation.
3package(default_visibility = ["//src:__subpackages__"])
4
5filegroup(
6 name = "srcs",
7 srcs = glob(["**"]),
8 visibility = ["//src:__pkg__"],
9)
10
Sasha Smundak57472632016-08-05 20:07:40 +000011cc_binary(
12 name = "singlejar",
13 srcs = [
14 "singlejar_main.cc",
15 ],
16 linkstatic = 1,
17 deps = [
18 "options",
19 "output_jar",
20 "//third_party/zlib",
21 ],
22)
23
Sasha Smundak06a12e52016-07-15 17:35:51 +000024cc_test(
Sasha Smundakde63c6f2016-07-27 17:05:11 +000025 name = "combiners_test",
26 size = "large",
27 srcs = [
28 "combiners_test.cc",
Sasha Smundakde63c6f2016-07-27 17:05:11 +000029 ":zip_headers",
30 ":zlib_interface",
31 ],
32 deps = [
Sasha Smundak3f814d72016-08-09 17:17:57 +000033 ":combiners",
Sasha Smundak5f35e522016-08-04 14:55:08 +000034 ":input_jar",
Sasha Smundakde63c6f2016-07-27 17:05:11 +000035 "//third_party:gtest",
36 "//third_party/zlib",
37 ],
38)
39
40cc_test(
Sasha Smundak07c3fe22016-08-24 13:20:22 +000041 name = "input_jar_empty_jar_test",
42 srcs = [
43 "input_jar_empty_jar_test.cc",
44 ],
45 data = [
46 "data/empty.zip",
47 ],
48 deps = [
49 ":input_jar",
50 ":test_util",
51 "//src/main/cpp/util",
52 "//third_party:gtest",
53 ],
54)
55
56cc_test(
Sasha Smundak1e98fff2016-08-03 17:18:02 +000057 name = "input_jar_preambled_test",
58 srcs = [
59 "input_jar_preambled_test.cc",
Sasha Smundak1e98fff2016-08-03 17:18:02 +000060 ],
61 data = [
62 ":test1",
63 ],
64 deps = [
Sasha Smundak5f35e522016-08-04 14:55:08 +000065 ":input_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +000066 ":test_util",
Sasha Smundak1e98fff2016-08-03 17:18:02 +000067 "//src/main/cpp/util",
68 "//third_party:gtest",
69 ],
70)
71
72cc_test(
Sasha Smundak06a12e52016-07-15 17:35:51 +000073 name = "input_jar_scan_jartool_test",
74 size = "large",
75 srcs = [
76 "input_jar_scan_entries_test.h",
77 "input_jar_scan_jartool_test.cc",
Sasha Smundak06a12e52016-07-15 17:35:51 +000078 ],
79 copts = ["-DJAR_TOOL_PATH=\\\"external/local_jdk/bin/jar\\\""],
80 data = [
81 "//external:jar",
82 "//external:jdk-default",
83 ],
Damien Martin-Guillerez57a965b2016-07-25 11:24:14 +000084 # Timing out, see https://github.com/bazelbuild/bazel/issues/1555
85 tags = ["manual"],
Sasha Smundak5f35e522016-08-04 14:55:08 +000086 deps = [
87 ":input_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +000088 ":test_util",
Sasha Smundak5f35e522016-08-04 14:55:08 +000089 "//third_party:gtest",
90 ],
Sasha Smundak06a12e52016-07-15 17:35:51 +000091)
92
93cc_test(
94 name = "input_jar_scan_ziptool_test",
95 size = "large",
96 srcs = [
97 "input_jar_scan_entries_test.h",
98 "input_jar_scan_ziptool_test.cc",
Sasha Smundak06a12e52016-07-15 17:35:51 +000099 ],
Damien Martin-Guillerez57a965b2016-07-25 11:24:14 +0000100 # Timing out, see https://github.com/bazelbuild/bazel/issues/1555
101 tags = ["manual"],
Sasha Smundak5f35e522016-08-04 14:55:08 +0000102 deps = [
103 ":input_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +0000104 ":test_util",
Sasha Smundak5f35e522016-08-04 14:55:08 +0000105 "//third_party:gtest",
106 ],
Sasha Smundak06a12e52016-07-15 17:35:51 +0000107)
108
109cc_test(
110 name = "input_jar_bad_jar_test",
111 srcs = [
112 "input_jar_bad_jar_test.cc",
Sasha Smundak06a12e52016-07-15 17:35:51 +0000113 ],
Sasha Smundak5f35e522016-08-04 14:55:08 +0000114 deps = [
115 ":input_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +0000116 ":test_util",
Sasha Smundak5f35e522016-08-04 14:55:08 +0000117 "//third_party:gtest",
118 ],
Sasha Smundak06a12e52016-07-15 17:35:51 +0000119)
120
121cc_test(
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000122 name = "options_test",
123 srcs = [
124 "options.h",
125 "options_test.cc",
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000126 ],
127 deps = [
128 ":options",
Sasha Smundak28d70942016-08-09 09:20:43 +0000129 ":test_util",
Liam Miller-Cushonf7ce0472016-12-06 07:23:09 +0000130 ":token_stream",
Sasha Smundak28d70942016-08-09 09:20:43 +0000131 "//src/main/cpp/util",
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000132 "//third_party:gtest",
133 ],
134)
135
Sasha Smundak5733f7e2016-08-30 17:21:18 +0000136sh_test(
137 name = "output_jar_bash_test",
138 srcs = ["output_jar_shell_test.sh"],
139 args = [
140 "src/test/shell",
141 "$(location :singlejar)",
142 ],
143 data = [
144 ":singlejar",
145 ],
146 deps = ["//src/test/shell:bashunit"],
147)
148
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000149cc_test(
Sasha Smundak57472632016-08-05 20:07:40 +0000150 name = "output_jar_simple_test",
151 srcs = [
152 "output_jar_simple_test.cc",
153 ],
Sasha Smundak0e666b82016-08-12 22:35:48 +0000154 copts = ["-DJAR_TOOL_PATH=\\\"external/local_jdk/bin/jar\\\""],
Sasha Smundak57472632016-08-05 20:07:40 +0000155 data = [
Sasha Smundak92fbef02016-08-10 15:53:11 +0000156 ":data1",
157 ":data2",
Sasha Smundakb01948d2016-08-17 18:20:37 +0000158 ":stored_jar",
Sasha Smundak57472632016-08-05 20:07:40 +0000159 ":test1",
160 ":test2",
Sasha Smundak0e666b82016-08-12 22:35:48 +0000161 "//external:jar",
162 "//external:jdk-default",
Sasha Smundak57472632016-08-05 20:07:40 +0000163 ],
164 deps = [
165 ":input_jar",
166 ":options",
167 ":output_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +0000168 ":test_util",
Sasha Smundak57472632016-08-05 20:07:40 +0000169 "//src/main/cpp/util",
170 "//third_party:gtest",
171 ],
172)
173
174cc_test(
Sasha Smundak876d6f62016-07-19 17:34:37 +0000175 name = "token_stream_test",
176 srcs = [
177 "token_stream_test.cc",
Sasha Smundak876d6f62016-07-19 17:34:37 +0000178 ],
Sasha Smundak28d70942016-08-09 09:20:43 +0000179 deps = [
180 ":test_util",
Liam Miller-Cushonf7ce0472016-12-06 07:23:09 +0000181 ":token_stream",
Sasha Smundak28d70942016-08-09 09:20:43 +0000182 "//third_party:gtest",
183 ],
Sasha Smundak876d6f62016-07-19 17:34:37 +0000184)
185
186cc_test(
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000187 name = "transient_bytes_test",
188 size = "large",
189 srcs = [
190 "transient_bytes_test.cc",
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000191 ":transient_bytes",
192 ":zlib_interface",
193 ],
Damien Martin-Guillerez57a965b2016-07-25 11:24:14 +0000194 # Timing out, see https://github.com/bazelbuild/bazel/issues/1555
195 tags = ["manual"],
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000196 deps = [
Sasha Smundak5f35e522016-08-04 14:55:08 +0000197 ":input_jar",
Sasha Smundak28d70942016-08-09 09:20:43 +0000198 ":test_util",
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000199 "//third_party:gtest",
200 "//third_party/zlib",
201 ],
202)
203
204cc_test(
Sasha Smundaka66060c2016-07-25 08:26:33 +0000205 name = "zip_headers_test",
206 size = "small",
207 srcs = [
208 "zip_headers_test.cc",
209 ":zip_headers",
210 ],
211 deps = ["//third_party:gtest"],
212)
213
214cc_test(
Sasha Smundak06a12e52016-07-15 17:35:51 +0000215 name = "zlib_interface_test",
216 srcs = [
217 "zlib_interface_test.cc",
218 ":zlib_interface",
219 ],
220 deps = [
Sasha Smundak28d70942016-08-09 09:20:43 +0000221 ":test_util",
Sasha Smundak06a12e52016-07-15 17:35:51 +0000222 "//third_party:gtest",
223 "//third_party/zlib",
224 ],
225)
226
Sasha Smundak207349e2016-08-23 17:21:47 +0000227sh_test(
228 name = "zip64_test",
229 srcs = ["zip64_test.sh"],
230 args = [
231 "src/test/shell",
232 "$(location :singlejar)",
Laszlo Csomor8539a122016-09-20 15:40:42 +0000233 "$(location //external:jar)",
Sasha Smundak207349e2016-08-23 17:21:47 +0000234 ],
235 data = [
236 ":singlejar",
237 "//external:jar",
238 "//tools/defaults:jdk",
239 ],
240 deps = ["//src/test/shell:bashunit"],
241)
242
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000243cc_library(
Sasha Smundak3f814d72016-08-09 17:17:57 +0000244 name = "combiners",
245 srcs = [
246 "combiners.cc",
247 ":transient_bytes",
248 ":zip_headers",
249 ],
250 hdrs = ["combiners.h"],
251 deps = ["//third_party/zlib"],
252)
253
254cc_library(
Sasha Smundak5f35e522016-08-04 14:55:08 +0000255 name = "input_jar",
256 srcs = [
257 "diag.h",
258 "input_jar.cc",
259 "mapped_file.h",
260 ],
261 hdrs = [
262 "input_jar.h",
263 "zip_headers.h",
264 ],
265)
266
267cc_library(
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000268 name = "options",
269 srcs = [
270 "diag.h",
271 "options.cc",
272 "options.h",
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000273 ],
Sasha Smundak57472632016-08-05 20:07:40 +0000274 hdrs = ["options.h"],
Liam Miller-Cushonf7ce0472016-12-06 07:23:09 +0000275 deps = [
276 ":token_stream",
277 ],
Sasha Smundak57472632016-08-05 20:07:40 +0000278)
279
280cc_library(
281 name = "output_jar",
282 srcs = [
Sasha Smundak3f814d72016-08-09 17:17:57 +0000283 "diag.h",
284 "mapped_file.h",
Sasha Smundak57472632016-08-05 20:07:40 +0000285 "output_jar.cc",
286 "output_jar.h",
Sasha Smundak57472632016-08-05 20:07:40 +0000287 ":zip_headers",
288 ],
289 hdrs = ["output_jar.h"],
290 deps = [
Sasha Smundak3f814d72016-08-09 17:17:57 +0000291 ":combiners",
Sasha Smundak57472632016-08-05 20:07:40 +0000292 ":input_jar",
293 ":options",
294 "//src/main/cpp/util",
295 "//third_party/zlib",
296 ],
Sasha Smundakd3b0ede2016-07-20 09:11:34 +0000297)
298
Sasha Smundak28d70942016-08-09 09:20:43 +0000299cc_library(
300 name = "test_util",
301 srcs = ["test_util.cc"],
302 hdrs = ["test_util.h"],
303 deps = [
Sasha Smundak28d70942016-08-09 09:20:43 +0000304 "//src/main/cpp/util",
305 "//third_party:gtest",
306 ],
307)
308
Liam Miller-Cushonf7ce0472016-12-06 07:23:09 +0000309cc_library(
Sasha Smundak876d6f62016-07-19 17:34:37 +0000310 name = "token_stream",
Liam Miller-Cushonf7ce0472016-12-06 07:23:09 +0000311 srcs = ["diag.h"],
312 hdrs = ["token_stream.h"],
Sasha Smundak876d6f62016-07-19 17:34:37 +0000313)
314
315filegroup(
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000316 name = "transient_bytes",
317 srcs = [
318 "diag.h",
319 "transient_bytes.h",
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000320 "zlib_interface.h",
Sasha Smundaka66060c2016-07-25 08:26:33 +0000321 ":zip_headers",
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000322 ],
323)
324
325filegroup(
Sasha Smundaka66060c2016-07-25 08:26:33 +0000326 name = "zip_headers",
327 srcs = ["zip_headers.h"],
328)
329
330filegroup(
Sasha Smundak06a12e52016-07-15 17:35:51 +0000331 name = "zlib_interface",
Sasha Smundak0c6cccd2016-07-19 19:52:03 +0000332 srcs = [
333 "diag.h",
334 "zlib_interface.h",
335 ],
Sasha Smundak06a12e52016-07-15 17:35:51 +0000336)
Sasha Smundak1e98fff2016-08-03 17:18:02 +0000337
338java_library(
339 name = "test1",
340 resources = [
Sasha Smundak0241b592016-09-26 17:00:25 +0000341 "options.cc",
Sasha Smundak1e98fff2016-08-03 17:18:02 +0000342 "zip_headers.h",
343 "zlib_interface.h",
344 ],
345)
Sasha Smundak57472632016-08-05 20:07:40 +0000346
347java_library(
348 name = "test2",
349 resources = [
350 "token_stream.h",
351 "transient_bytes.h",
352 ],
353)
Sasha Smundak92fbef02016-08-10 15:53:11 +0000354
355java_library(
356 name = "data1",
357 resources = [
358 "data/extra_file1",
359 "data/extra_file2",
360 ],
361)
362
363java_library(
364 name = "data2",
365 resources = [
366 "data/extra_file1",
367 "data/extra_file3",
368 ],
369)
Sasha Smundakb01948d2016-08-17 18:20:37 +0000370
371genrule(
372 name = "stored_jar",
Yue Gan6905aab2016-08-22 14:15:16 +0000373 srcs = [
374 "output_jar.cc",
375 "//tools/defaults:jdk",
376 ],
Sasha Smundakb01948d2016-08-17 18:20:37 +0000377 outs = ["stored.jar"],
378 cmd = "$(location //external:jar) -0cf \"$@\" $(location :output_jar.cc)",
379 tools = ["//external:jar"],
380)