Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 1 | # Description: |
| 2 | # singlejar C++ implementation. |
| 3 | package(default_visibility = ["//src:__subpackages__"]) |
| 4 | |
| 5 | filegroup( |
| 6 | name = "srcs", |
| 7 | srcs = glob(["**"]), |
| 8 | visibility = ["//src:__pkg__"], |
| 9 | ) |
| 10 | |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 11 | cc_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 Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 24 | cc_test( |
Sasha Smundak | de63c6f | 2016-07-27 17:05:11 +0000 | [diff] [blame] | 25 | name = "combiners_test", |
| 26 | size = "large", |
| 27 | srcs = [ |
| 28 | "combiners_test.cc", |
Sasha Smundak | de63c6f | 2016-07-27 17:05:11 +0000 | [diff] [blame] | 29 | ":zip_headers", |
| 30 | ":zlib_interface", |
| 31 | ], |
| 32 | deps = [ |
Sasha Smundak | 3f814d7 | 2016-08-09 17:17:57 +0000 | [diff] [blame] | 33 | ":combiners", |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 34 | ":input_jar", |
Sasha Smundak | de63c6f | 2016-07-27 17:05:11 +0000 | [diff] [blame] | 35 | "//third_party:gtest", |
| 36 | "//third_party/zlib", |
| 37 | ], |
| 38 | ) |
| 39 | |
| 40 | cc_test( |
Sasha Smundak | 07c3fe2 | 2016-08-24 13:20:22 +0000 | [diff] [blame] | 41 | 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 | |
| 56 | cc_test( |
Sasha Smundak | 1e98fff | 2016-08-03 17:18:02 +0000 | [diff] [blame] | 57 | name = "input_jar_preambled_test", |
| 58 | srcs = [ |
| 59 | "input_jar_preambled_test.cc", |
Sasha Smundak | 1e98fff | 2016-08-03 17:18:02 +0000 | [diff] [blame] | 60 | ], |
| 61 | data = [ |
| 62 | ":test1", |
| 63 | ], |
| 64 | deps = [ |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 65 | ":input_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 66 | ":test_util", |
Sasha Smundak | 1e98fff | 2016-08-03 17:18:02 +0000 | [diff] [blame] | 67 | "//src/main/cpp/util", |
| 68 | "//third_party:gtest", |
| 69 | ], |
| 70 | ) |
| 71 | |
| 72 | cc_test( |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 73 | 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 Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 78 | ], |
| 79 | copts = ["-DJAR_TOOL_PATH=\\\"external/local_jdk/bin/jar\\\""], |
| 80 | data = [ |
| 81 | "//external:jar", |
| 82 | "//external:jdk-default", |
| 83 | ], |
Damien Martin-Guillerez | 57a965b | 2016-07-25 11:24:14 +0000 | [diff] [blame] | 84 | # Timing out, see https://github.com/bazelbuild/bazel/issues/1555 |
| 85 | tags = ["manual"], |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 86 | deps = [ |
| 87 | ":input_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 88 | ":test_util", |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 89 | "//third_party:gtest", |
| 90 | ], |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 91 | ) |
| 92 | |
| 93 | cc_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 Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 99 | ], |
Damien Martin-Guillerez | 57a965b | 2016-07-25 11:24:14 +0000 | [diff] [blame] | 100 | # Timing out, see https://github.com/bazelbuild/bazel/issues/1555 |
| 101 | tags = ["manual"], |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 102 | deps = [ |
| 103 | ":input_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 104 | ":test_util", |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 105 | "//third_party:gtest", |
| 106 | ], |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 107 | ) |
| 108 | |
| 109 | cc_test( |
| 110 | name = "input_jar_bad_jar_test", |
| 111 | srcs = [ |
| 112 | "input_jar_bad_jar_test.cc", |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 113 | ], |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 114 | deps = [ |
| 115 | ":input_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 116 | ":test_util", |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 117 | "//third_party:gtest", |
| 118 | ], |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 119 | ) |
| 120 | |
| 121 | cc_test( |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 122 | name = "options_test", |
| 123 | srcs = [ |
| 124 | "options.h", |
| 125 | "options_test.cc", |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 126 | ], |
| 127 | deps = [ |
| 128 | ":options", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 129 | ":test_util", |
Liam Miller-Cushon | f7ce047 | 2016-12-06 07:23:09 +0000 | [diff] [blame] | 130 | ":token_stream", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 131 | "//src/main/cpp/util", |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 132 | "//third_party:gtest", |
| 133 | ], |
| 134 | ) |
| 135 | |
Sasha Smundak | 5733f7e | 2016-08-30 17:21:18 +0000 | [diff] [blame] | 136 | sh_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 Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 149 | cc_test( |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 150 | name = "output_jar_simple_test", |
| 151 | srcs = [ |
| 152 | "output_jar_simple_test.cc", |
| 153 | ], |
Sasha Smundak | 0e666b8 | 2016-08-12 22:35:48 +0000 | [diff] [blame] | 154 | copts = ["-DJAR_TOOL_PATH=\\\"external/local_jdk/bin/jar\\\""], |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 155 | data = [ |
Sasha Smundak | 92fbef0 | 2016-08-10 15:53:11 +0000 | [diff] [blame] | 156 | ":data1", |
| 157 | ":data2", |
Sasha Smundak | b01948d | 2016-08-17 18:20:37 +0000 | [diff] [blame] | 158 | ":stored_jar", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 159 | ":test1", |
| 160 | ":test2", |
Sasha Smundak | 0e666b8 | 2016-08-12 22:35:48 +0000 | [diff] [blame] | 161 | "//external:jar", |
| 162 | "//external:jdk-default", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 163 | ], |
| 164 | deps = [ |
| 165 | ":input_jar", |
| 166 | ":options", |
| 167 | ":output_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 168 | ":test_util", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 169 | "//src/main/cpp/util", |
| 170 | "//third_party:gtest", |
| 171 | ], |
| 172 | ) |
| 173 | |
| 174 | cc_test( |
Sasha Smundak | 876d6f6 | 2016-07-19 17:34:37 +0000 | [diff] [blame] | 175 | name = "token_stream_test", |
| 176 | srcs = [ |
| 177 | "token_stream_test.cc", |
Sasha Smundak | 876d6f6 | 2016-07-19 17:34:37 +0000 | [diff] [blame] | 178 | ], |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 179 | deps = [ |
| 180 | ":test_util", |
Liam Miller-Cushon | f7ce047 | 2016-12-06 07:23:09 +0000 | [diff] [blame] | 181 | ":token_stream", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 182 | "//third_party:gtest", |
| 183 | ], |
Sasha Smundak | 876d6f6 | 2016-07-19 17:34:37 +0000 | [diff] [blame] | 184 | ) |
| 185 | |
| 186 | cc_test( |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 187 | name = "transient_bytes_test", |
| 188 | size = "large", |
| 189 | srcs = [ |
| 190 | "transient_bytes_test.cc", |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 191 | ":transient_bytes", |
| 192 | ":zlib_interface", |
| 193 | ], |
Damien Martin-Guillerez | 57a965b | 2016-07-25 11:24:14 +0000 | [diff] [blame] | 194 | # Timing out, see https://github.com/bazelbuild/bazel/issues/1555 |
| 195 | tags = ["manual"], |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 196 | deps = [ |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 197 | ":input_jar", |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 198 | ":test_util", |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 199 | "//third_party:gtest", |
| 200 | "//third_party/zlib", |
| 201 | ], |
| 202 | ) |
| 203 | |
| 204 | cc_test( |
Sasha Smundak | a66060c | 2016-07-25 08:26:33 +0000 | [diff] [blame] | 205 | 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 | |
| 214 | cc_test( |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 215 | name = "zlib_interface_test", |
| 216 | srcs = [ |
| 217 | "zlib_interface_test.cc", |
| 218 | ":zlib_interface", |
| 219 | ], |
| 220 | deps = [ |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 221 | ":test_util", |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 222 | "//third_party:gtest", |
| 223 | "//third_party/zlib", |
| 224 | ], |
| 225 | ) |
| 226 | |
Sasha Smundak | 207349e | 2016-08-23 17:21:47 +0000 | [diff] [blame] | 227 | sh_test( |
| 228 | name = "zip64_test", |
| 229 | srcs = ["zip64_test.sh"], |
| 230 | args = [ |
| 231 | "src/test/shell", |
| 232 | "$(location :singlejar)", |
Laszlo Csomor | 8539a12 | 2016-09-20 15:40:42 +0000 | [diff] [blame] | 233 | "$(location //external:jar)", |
Sasha Smundak | 207349e | 2016-08-23 17:21:47 +0000 | [diff] [blame] | 234 | ], |
| 235 | data = [ |
| 236 | ":singlejar", |
| 237 | "//external:jar", |
| 238 | "//tools/defaults:jdk", |
| 239 | ], |
| 240 | deps = ["//src/test/shell:bashunit"], |
| 241 | ) |
| 242 | |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 243 | cc_library( |
Sasha Smundak | 3f814d7 | 2016-08-09 17:17:57 +0000 | [diff] [blame] | 244 | 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 | |
| 254 | cc_library( |
Sasha Smundak | 5f35e52 | 2016-08-04 14:55:08 +0000 | [diff] [blame] | 255 | 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 | |
| 267 | cc_library( |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 268 | name = "options", |
| 269 | srcs = [ |
| 270 | "diag.h", |
| 271 | "options.cc", |
| 272 | "options.h", |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 273 | ], |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 274 | hdrs = ["options.h"], |
Liam Miller-Cushon | f7ce047 | 2016-12-06 07:23:09 +0000 | [diff] [blame] | 275 | deps = [ |
| 276 | ":token_stream", |
| 277 | ], |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 278 | ) |
| 279 | |
| 280 | cc_library( |
| 281 | name = "output_jar", |
| 282 | srcs = [ |
Sasha Smundak | 3f814d7 | 2016-08-09 17:17:57 +0000 | [diff] [blame] | 283 | "diag.h", |
| 284 | "mapped_file.h", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 285 | "output_jar.cc", |
| 286 | "output_jar.h", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 287 | ":zip_headers", |
| 288 | ], |
| 289 | hdrs = ["output_jar.h"], |
| 290 | deps = [ |
Sasha Smundak | 3f814d7 | 2016-08-09 17:17:57 +0000 | [diff] [blame] | 291 | ":combiners", |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 292 | ":input_jar", |
| 293 | ":options", |
| 294 | "//src/main/cpp/util", |
| 295 | "//third_party/zlib", |
| 296 | ], |
Sasha Smundak | d3b0ede | 2016-07-20 09:11:34 +0000 | [diff] [blame] | 297 | ) |
| 298 | |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 299 | cc_library( |
| 300 | name = "test_util", |
| 301 | srcs = ["test_util.cc"], |
| 302 | hdrs = ["test_util.h"], |
| 303 | deps = [ |
Sasha Smundak | 28d7094 | 2016-08-09 09:20:43 +0000 | [diff] [blame] | 304 | "//src/main/cpp/util", |
| 305 | "//third_party:gtest", |
| 306 | ], |
| 307 | ) |
| 308 | |
Liam Miller-Cushon | f7ce047 | 2016-12-06 07:23:09 +0000 | [diff] [blame] | 309 | cc_library( |
Sasha Smundak | 876d6f6 | 2016-07-19 17:34:37 +0000 | [diff] [blame] | 310 | name = "token_stream", |
Liam Miller-Cushon | f7ce047 | 2016-12-06 07:23:09 +0000 | [diff] [blame] | 311 | srcs = ["diag.h"], |
| 312 | hdrs = ["token_stream.h"], |
Sasha Smundak | 876d6f6 | 2016-07-19 17:34:37 +0000 | [diff] [blame] | 313 | ) |
| 314 | |
| 315 | filegroup( |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 316 | name = "transient_bytes", |
| 317 | srcs = [ |
| 318 | "diag.h", |
| 319 | "transient_bytes.h", |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 320 | "zlib_interface.h", |
Sasha Smundak | a66060c | 2016-07-25 08:26:33 +0000 | [diff] [blame] | 321 | ":zip_headers", |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 322 | ], |
| 323 | ) |
| 324 | |
| 325 | filegroup( |
Sasha Smundak | a66060c | 2016-07-25 08:26:33 +0000 | [diff] [blame] | 326 | name = "zip_headers", |
| 327 | srcs = ["zip_headers.h"], |
| 328 | ) |
| 329 | |
| 330 | filegroup( |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 331 | name = "zlib_interface", |
Sasha Smundak | 0c6cccd | 2016-07-19 19:52:03 +0000 | [diff] [blame] | 332 | srcs = [ |
| 333 | "diag.h", |
| 334 | "zlib_interface.h", |
| 335 | ], |
Sasha Smundak | 06a12e5 | 2016-07-15 17:35:51 +0000 | [diff] [blame] | 336 | ) |
Sasha Smundak | 1e98fff | 2016-08-03 17:18:02 +0000 | [diff] [blame] | 337 | |
| 338 | java_library( |
| 339 | name = "test1", |
| 340 | resources = [ |
Sasha Smundak | 0241b59 | 2016-09-26 17:00:25 +0000 | [diff] [blame] | 341 | "options.cc", |
Sasha Smundak | 1e98fff | 2016-08-03 17:18:02 +0000 | [diff] [blame] | 342 | "zip_headers.h", |
| 343 | "zlib_interface.h", |
| 344 | ], |
| 345 | ) |
Sasha Smundak | 5747263 | 2016-08-05 20:07:40 +0000 | [diff] [blame] | 346 | |
| 347 | java_library( |
| 348 | name = "test2", |
| 349 | resources = [ |
| 350 | "token_stream.h", |
| 351 | "transient_bytes.h", |
| 352 | ], |
| 353 | ) |
Sasha Smundak | 92fbef0 | 2016-08-10 15:53:11 +0000 | [diff] [blame] | 354 | |
| 355 | java_library( |
| 356 | name = "data1", |
| 357 | resources = [ |
| 358 | "data/extra_file1", |
| 359 | "data/extra_file2", |
| 360 | ], |
| 361 | ) |
| 362 | |
| 363 | java_library( |
| 364 | name = "data2", |
| 365 | resources = [ |
| 366 | "data/extra_file1", |
| 367 | "data/extra_file3", |
| 368 | ], |
| 369 | ) |
Sasha Smundak | b01948d | 2016-08-17 18:20:37 +0000 | [diff] [blame] | 370 | |
| 371 | genrule( |
| 372 | name = "stored_jar", |
Yue Gan | 6905aab | 2016-08-22 14:15:16 +0000 | [diff] [blame] | 373 | srcs = [ |
| 374 | "output_jar.cc", |
| 375 | "//tools/defaults:jdk", |
| 376 | ], |
Sasha Smundak | b01948d | 2016-08-17 18:20:37 +0000 | [diff] [blame] | 377 | outs = ["stored.jar"], |
| 378 | cmd = "$(location //external:jar) -0cf \"$@\" $(location :output_jar.cc)", |
| 379 | tools = ["//external:jar"], |
| 380 | ) |