blob: 49f52e1f8b1e505481a124a55ab91a7dd5ec571c [file] [log] [blame]
brettw@chromium.org069e2b82014-04-30 16:47:24 +00001# Copyright (c) 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Tomasz Śniatowskiabd51832019-06-24 17:52:19 +00005import("//build/config/compiler/compiler.gni")
Lei Zhang40c3a762020-04-22 04:07:41 +00006
7if (build_with_chromium) {
8 import("//testing/test.gni")
9}
Tomasz Śniatowskiabd51832019-06-24 17:52:19 +000010
Adenilson Cavalcanti3060dcb2017-09-29 03:24:52 +000011if (current_cpu == "arm" || current_cpu == "arm64") {
12 import("//build/config/arm.gni")
13}
14
brettw@chromium.org069e2b82014-04-30 16:47:24 +000015config("zlib_config") {
16 include_dirs = [ "." ]
17}
18
Tom Anderson20c7ae12019-04-08 20:51:48 +000019config("zlib_internal_config") {
20 defines = [ "ZLIB_IMPLEMENTATION" ]
Adenilson Cavalcanti9444fdb2020-05-21 21:44:13 +000021
22 if (!is_debug) {
23 # Build code using -O3, see: crbug.com/1084371.
24 configs = [ "//build/config/compiler:optimize_speed" ]
25 }
Hans Wennborg493d4292020-08-04 11:38:55 +000026 if (is_debug || use_libfuzzer) {
27 # Enable zlib's asserts in debug and fuzzer builds.
28 defines += [ "ZLIB_DEBUG" ]
29 }
Ng Zhi Anbffc82b2021-10-06 00:58:51 +000030
31 if (is_win && !is_clang) {
32 # V8 supports building with msvc, these silence some warnings that
33 # causes compilation to fail (https://crbug.com/1255096).
34 cflags = [
35 "/wd4244",
36 "/wd4100",
37 "/wd4702",
38 "/wd4127",
39 ]
40 }
Tom Anderson20c7ae12019-04-08 20:51:48 +000041}
42
Jamie Madill59187e12020-09-01 23:40:10 +000043source_set("zlib_common_headers") {
44 sources = [
45 "chromeconf.h",
46 "deflate.h",
47 "inffast.h",
48 "inffixed.h",
49 "inflate.h",
50 "inftrees.h",
51 "zconf.h",
52 "zlib.h",
53 "zutil.h",
54 ]
55}
56
Daniel Bratelldde5ce52018-10-31 11:39:12 +000057use_arm_neon_optimizations = false
Richard Townsendc2eb8a72020-02-14 01:15:01 +000058if ((current_cpu == "arm" || current_cpu == "arm64") &&
59 !(is_win && !is_clang)) {
60 # TODO(richard.townsend@arm.com): Optimizations temporarily disabled for
61 # Windows on Arm MSVC builds, see http://crbug.com/v8/10012.
Daniel Bratelldde5ce52018-10-31 11:39:12 +000062 if (arm_use_neon) {
63 use_arm_neon_optimizations = true
64 }
65}
66
Hans Wennborg2a6432e2020-01-24 22:31:29 +000067use_x86_x64_optimizations =
68 (current_cpu == "x86" || current_cpu == "x64") && !is_ios
Daniel Bratelldde5ce52018-10-31 11:39:12 +000069
Noel Gordon17bbb3d2017-09-29 19:44:25 +000070config("zlib_adler32_simd_config") {
Daniel Bratelldde5ce52018-10-31 11:39:12 +000071 if (use_x86_x64_optimizations) {
Noel Gordon17bbb3d2017-09-29 19:44:25 +000072 defines = [ "ADLER32_SIMD_SSSE3" ]
Hans Wennborg2a6432e2020-01-24 22:31:29 +000073 if (is_win) {
74 defines += [ "X86_WINDOWS" ]
75 } else {
76 defines += [ "X86_NOT_WINDOWS" ]
77 }
Noel Gordona0ea34a2020-04-20 20:32:01 +000078 }
79
80 if (use_arm_neon_optimizations) {
Daniel Bratelldde5ce52018-10-31 11:39:12 +000081 defines = [ "ADLER32_SIMD_NEON" ]
Noel Gordon17bbb3d2017-09-29 19:44:25 +000082 }
83}
84
85source_set("zlib_adler32_simd") {
86 visibility = [ ":*" ]
87
Daniel Bratelldde5ce52018-10-31 11:39:12 +000088 if (use_x86_x64_optimizations) {
Noel Gordon17bbb3d2017-09-29 19:44:25 +000089 sources = [
90 "adler32_simd.c",
91 "adler32_simd.h",
92 ]
93
94 if (!is_win || is_clang) {
95 cflags = [ "-mssse3" ]
96 }
97 }
98
Daniel Bratelldde5ce52018-10-31 11:39:12 +000099 if (use_arm_neon_optimizations) {
100 sources = [
101 "adler32_simd.c",
102 "adler32_simd.h",
103 ]
Noel Gordon17bbb3d2017-09-29 19:44:25 +0000104 }
105
Tom Anderson20c7ae12019-04-08 20:51:48 +0000106 configs += [ ":zlib_internal_config" ]
107
Noel Gordon17bbb3d2017-09-29 19:44:25 +0000108 public_configs = [ ":zlib_adler32_simd_config" ]
Jamie Madill59187e12020-09-01 23:40:10 +0000109
110 public_deps = [ ":zlib_common_headers" ]
Noel Gordon17bbb3d2017-09-29 19:44:25 +0000111}
112
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000113if (use_arm_neon_optimizations) {
114 config("zlib_arm_crc32_config") {
Noel Gordon4bda75a2019-04-15 06:52:31 +0000115 # Disabled for iPhone, as described in DDI0487C_a_armv8_arm:
116 # "All implementations of the ARMv8.1 architecture are required to
117 # implement the CRC32* instructions. These are optional in ARMv8.0."
118 if (!is_ios) {
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000119 defines = [ "CRC32_ARMV8_CRC32" ]
120 if (is_android) {
121 defines += [ "ARMV8_OS_ANDROID" ]
122 } else if (is_linux || is_chromeos) {
123 defines += [ "ARMV8_OS_LINUX" ]
Nico Weber93be8462020-06-24 22:50:54 +0000124 } else if (is_mac) {
125 defines += [ "ARMV8_OS_MACOS" ]
Noel Gordon4bda75a2019-04-15 06:52:31 +0000126 } else if (is_fuchsia) {
127 defines += [ "ARMV8_OS_FUCHSIA" ]
Richard Townsend8f2b9d42019-04-18 16:45:43 +0000128 } else if (is_win) {
129 defines += [ "ARMV8_OS_WINDOWS" ]
130 } else {
Noel Gordon4bda75a2019-04-15 06:52:31 +0000131 assert(false, "Unsupported ARM OS")
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000132 }
133 }
134 }
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000135
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000136 source_set("zlib_arm_crc32") {
137 visibility = [ ":*" ]
138
Jose Dapena Pazbbacb132019-06-10 09:16:22 +0000139 if (!is_ios) {
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000140 include_dirs = [ "." ]
141
Adenilson Cavalcanti5de00af2020-01-08 22:12:31 +0000142 if (!is_win && !is_clang) {
Tomasz Śniatowskiabd51832019-06-24 17:52:19 +0000143 assert(!use_thin_lto,
Jose Dapena Pazbbacb132019-06-10 09:16:22 +0000144 "ThinLTO fails mixing different module-level targets")
145 cflags_c = [ "-march=armv8-a+crc" ]
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000146 }
147
148 sources = [
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000149 "crc32_simd.c",
150 "crc32_simd.h",
151 ]
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000152 }
153
Tom Anderson20c7ae12019-04-08 20:51:48 +0000154 configs += [ ":zlib_internal_config" ]
155
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000156 public_configs = [ ":zlib_arm_crc32_config" ]
Jamie Madill59187e12020-09-01 23:40:10 +0000157
158 public_deps = [ ":zlib_common_headers" ]
Adenilson Cavalcanti72356722018-02-16 03:41:14 +0000159 }
160}
161
Noel Gordon64ffef02017-12-08 11:39:34 +0000162config("zlib_inflate_chunk_simd_config") {
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000163 if (use_x86_x64_optimizations) {
Noel Gordonbedc29e2018-02-12 01:46:01 +0000164 defines = [ "INFLATE_CHUNK_SIMD_SSE2" ]
165
166 if (current_cpu == "x64") {
167 defines += [ "INFLATE_CHUNK_READ_64LE" ]
168 }
Noel Gordon64ffef02017-12-08 11:39:34 +0000169 }
170
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000171 if (use_arm_neon_optimizations) {
172 defines = [ "INFLATE_CHUNK_SIMD_NEON" ]
Noel Gordona0ea34a2020-04-20 20:32:01 +0000173
Adenilson Cavalcanti9972c362019-01-31 21:39:02 +0000174 if (current_cpu == "arm64") {
175 defines += [ "INFLATE_CHUNK_READ_64LE" ]
176 }
Noel Gordon64ffef02017-12-08 11:39:34 +0000177 }
178}
179
180source_set("zlib_inflate_chunk_simd") {
181 visibility = [ ":*" ]
182
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000183 if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
Noel Gordon64ffef02017-12-08 11:39:34 +0000184 include_dirs = [ "." ]
185
186 sources = [
187 "contrib/optimizations/chunkcopy.h",
188 "contrib/optimizations/inffast_chunk.c",
189 "contrib/optimizations/inffast_chunk.h",
190 "contrib/optimizations/inflate.c",
191 ]
Noel Gordon64ffef02017-12-08 11:39:34 +0000192 }
193
Noel Gordona0ea34a2020-04-20 20:32:01 +0000194 configs += [ ":zlib_internal_config" ]
Noel Gordon64ffef02017-12-08 11:39:34 +0000195
K. Moon1b274912020-04-22 21:15:09 +0000196 # Needed for MSVC, which is still supported by V8 and PDFium. zlib uses K&R C
197 # style function declarations, which triggers warning C4131.
198 configs -= [ "//build/config/compiler:chromium_code" ]
199 configs += [ "//build/config/compiler:no_chromium_code" ]
200
Noel Gordon64ffef02017-12-08 11:39:34 +0000201 public_configs = [ ":zlib_inflate_chunk_simd_config" ]
Jamie Madill59187e12020-09-01 23:40:10 +0000202
203 public_deps = [ ":zlib_common_headers" ]
Noel Gordon64ffef02017-12-08 11:39:34 +0000204}
205
Noel Gordon8e904b32018-01-04 12:10:08 +1100206config("zlib_crc32_simd_config") {
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000207 if (use_x86_x64_optimizations) {
Noel Gordon8e904b32018-01-04 12:10:08 +1100208 defines = [ "CRC32_SIMD_SSE42_PCLMUL" ]
209 }
210}
211
212source_set("zlib_crc32_simd") {
213 visibility = [ ":*" ]
214
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000215 if (use_x86_x64_optimizations) {
Noel Gordon8e904b32018-01-04 12:10:08 +1100216 sources = [
217 "crc32_simd.c",
218 "crc32_simd.h",
219 ]
220
221 if (!is_win || is_clang) {
222 cflags = [
223 "-msse4.2",
224 "-mpclmul",
225 ]
226 }
227 }
228
Tom Anderson20c7ae12019-04-08 20:51:48 +0000229 configs += [ ":zlib_internal_config" ]
230
Noel Gordon8e904b32018-01-04 12:10:08 +1100231 public_configs = [ ":zlib_crc32_simd_config" ]
Jamie Madill59187e12020-09-01 23:40:10 +0000232 public_deps = [ ":zlib_common_headers" ]
Noel Gordon8e904b32018-01-04 12:10:08 +1100233}
234
Noel Gordon2ed8ded2020-04-21 12:11:09 +0000235config("zlib_x86_simd_config") {
236 if (use_x86_x64_optimizations) {
Noel Gordonf36fe822020-04-22 02:50:27 +0000237 defines = [
238 "CRC32_SIMD_SSE42_PCLMUL",
239 "DEFLATE_FILL_WINDOW_SSE2",
240 ]
Noel Gordon2ed8ded2020-04-21 12:11:09 +0000241 }
242}
243
Tom Anderson20c7ae12019-04-08 20:51:48 +0000244source_set("zlib_x86_simd") {
Noel Gordon8e904b32018-01-04 12:10:08 +1100245 visibility = [ ":*" ]
246
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000247 if (use_x86_x64_optimizations) {
scottmgb8135bf2014-12-02 23:28:00 -0800248 sources = [
249 "crc_folding.c",
250 "fill_window_sse.c",
251 ]
Noel Gordon8e904b32018-01-04 12:10:08 +1100252
Nico Weber0f60cc52014-11-18 15:21:17 -0800253 if (!is_win || is_clang) {
scottmgb8135bf2014-12-02 23:28:00 -0800254 cflags = [
255 "-msse4.2",
256 "-mpclmul",
257 ]
Nico Weber0f60cc52014-11-18 15:21:17 -0800258 }
robert.bradford10dd6862014-11-05 06:59:34 -0800259 }
dpranke73636152014-11-17 17:54:55 -0800260
Noel Gordona0ea34a2020-04-20 20:32:01 +0000261 configs += [ ":zlib_internal_config" ]
Noel Gordon2ed8ded2020-04-21 12:11:09 +0000262
263 public_configs = [ ":zlib_x86_simd_config" ]
Jamie Madill59187e12020-09-01 23:40:10 +0000264
265 public_deps = [ ":zlib_common_headers" ]
robert.bradford10dd6862014-11-05 06:59:34 -0800266}
267
brettw3f3d1262015-09-02 10:57:05 -0700268config("zlib_warnings") {
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000269 if (is_clang && use_x86_x64_optimizations) {
brettw3f3d1262015-09-02 10:57:05 -0700270 cflags = [ "-Wno-incompatible-pointer-types" ]
271 }
272}
273
Tom Anderson20c7ae12019-04-08 20:51:48 +0000274component("zlib") {
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000275 if (!is_win) {
276 # Don't stomp on "libzlib" on other platforms.
277 output_name = "chrome_zlib"
278 }
279
280 sources = [
281 "adler32.c",
Tom Anderson20c7ae12019-04-08 20:51:48 +0000282 "chromeconf.h",
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000283 "compress.c",
Adenilson Cavalcantid7f3ca92019-12-12 20:49:49 +0000284 "contrib/optimizations/insert_string.h",
Adenilson Cavalcanti5de00af2020-01-08 22:12:31 +0000285 "cpu_features.c",
286 "cpu_features.h",
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000287 "crc32.c",
288 "crc32.h",
289 "deflate.c",
290 "deflate.h",
291 "gzclose.c",
292 "gzguts.h",
293 "gzlib.c",
294 "gzread.c",
295 "gzwrite.c",
296 "infback.c",
297 "inffast.c",
298 "inffast.h",
299 "inffixed.h",
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000300 "inflate.h",
301 "inftrees.c",
302 "inftrees.h",
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000303 "trees.c",
304 "trees.h",
305 "uncompr.c",
306 "zconf.h",
307 "zlib.h",
308 "zutil.c",
309 "zutil.h",
310 ]
311
Boris Sazonov0f473a12017-11-30 10:01:30 +0000312 defines = []
313 deps = []
Noel Gordona0ea34a2020-04-20 20:32:01 +0000314
Adenilson Cavalcanti5de00af2020-01-08 22:12:31 +0000315 if (!use_x86_x64_optimizations && !use_arm_neon_optimizations) {
316 # Apparently android_cronet bot builds with NEON disabled and
317 # we also should disable optimizations for iOS@x86 (a.k.a. simulator).
318 defines += [ "CPU_NO_SIMD" ]
319 }
320
321 if (is_ios) {
322 # iOS@ARM is a special case where we always have NEON but don't check
323 # for crypto extensions.
Noel Gordona0ea34a2020-04-20 20:32:01 +0000324 # TODO(cavalcantii): verify what is the current state of CPU features
325 # shipped on latest iOS devices.
Adenilson Cavalcanti5de00af2020-01-08 22:12:31 +0000326 defines += [ "ARM_OS_IOS" ]
327 }
Boris Sazonov0f473a12017-11-30 10:01:30 +0000328
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000329 if (use_x86_x64_optimizations || use_arm_neon_optimizations) {
330 deps += [
331 ":zlib_adler32_simd",
332 ":zlib_inflate_chunk_simd",
333 ]
Noel Gordon8e904b32018-01-04 12:10:08 +1100334
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000335 if (use_x86_x64_optimizations) {
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000336 deps += [ ":zlib_crc32_simd" ]
337 } else if (use_arm_neon_optimizations) {
Adenilson Cavalcantid6d19612018-08-07 16:08:59 +0000338 sources += [ "contrib/optimizations/slide_hash_neon.h" ]
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000339 deps += [ ":zlib_arm_crc32" ]
Noel Gordon17bbb3d2017-09-29 19:44:25 +0000340 }
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000341 } else {
342 sources += [ "inflate.c" ]
robert.bradford10dd6862014-11-05 06:59:34 -0800343 }
344
Noel Gordona0ea34a2020-04-20 20:32:01 +0000345 deps += [ ":zlib_x86_simd" ]
346
Adenilson Cavalcanti5de00af2020-01-08 22:12:31 +0000347 if (is_android) {
348 import("//build/config/android/config.gni")
349 if (defined(android_ndk_root) && android_ndk_root != "") {
350 deps += [ "//third_party/android_ndk:cpu_features" ]
351 } else {
352 assert(false, "CPU detection requires the Android NDK")
353 }
354 }
355
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000356 configs -= [ "//build/config/compiler:chromium_code" ]
Noel Gordona0ea34a2020-04-20 20:32:01 +0000357 configs += [ "//build/config/compiler:no_chromium_code" ]
358
359 public_configs = [ ":zlib_config" ]
360
brettw3f3d1262015-09-02 10:57:05 -0700361 configs += [
Tom Anderson20c7ae12019-04-08 20:51:48 +0000362 ":zlib_internal_config",
Lei Zhang40c3a762020-04-22 04:07:41 +0000363
brettw3f3d1262015-09-02 10:57:05 -0700364 # Must be after no_chromium_code for warning flags to be ordered correctly.
365 ":zlib_warnings",
366 ]
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000367
Daniel Bratelldde5ce52018-10-31 11:39:12 +0000368 allow_circular_includes_from = deps
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000369}
370
brettw3f3d1262015-09-02 10:57:05 -0700371config("minizip_warnings") {
372 visibility = [ ":*" ]
Noel Gordon71eb81f2018-02-12 08:15:47 +0000373
brettw3f3d1262015-09-02 10:57:05 -0700374 if (is_clang) {
375 # zlib uses `if ((a == b))` for some reason.
376 cflags = [ "-Wno-parentheses-equality" ]
377 }
378}
379
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000380static_library("minizip") {
381 sources = [
382 "contrib/minizip/ioapi.c",
383 "contrib/minizip/ioapi.h",
384 "contrib/minizip/iowin32.c",
385 "contrib/minizip/iowin32.h",
386 "contrib/minizip/unzip.c",
387 "contrib/minizip/unzip.h",
388 "contrib/minizip/zip.c",
389 "contrib/minizip/zip.h",
390 ]
391
392 if (!is_win) {
393 sources -= [
394 "contrib/minizip/iowin32.c",
395 "contrib/minizip/iowin32.h",
396 ]
397 }
Noel Gordon71eb81f2018-02-12 08:15:47 +0000398
Sylvain Defresne103247f2020-07-27 14:16:50 +0000399 if (is_apple || is_android || is_nacl) {
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000400 # Mac, Android and the BSDs don't have fopen64, ftello64, or fseeko64. We
401 # use fopen, ftell, and fseek instead on these systems.
Hans Wennborg814da1f2019-12-21 11:13:14 +0000402 defines = [ "USE_FILE32API" ]
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000403 }
404
Nico Weberb9b9a5a2020-01-28 18:17:22 +0000405 deps = [ ":zlib" ]
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000406
407 configs -= [ "//build/config/compiler:chromium_code" ]
Noel Gordona0ea34a2020-04-20 20:32:01 +0000408 configs += [ "//build/config/compiler:no_chromium_code" ]
brettw3f3d1262015-09-02 10:57:05 -0700409
Noel Gordona0ea34a2020-04-20 20:32:01 +0000410 public_configs = [ ":zlib_config" ]
411
412 configs += [
brettw3f3d1262015-09-02 10:57:05 -0700413 # Must be after no_chromium_code for warning flags to be ordered correctly.
414 ":minizip_warnings",
415 ]
brettw@chromium.org069e2b82014-04-30 16:47:24 +0000416}
Noel Gordonc83e2162018-01-21 11:19:12 +0000417
418executable("zlib_bench") {
419 include_dirs = [ "." ]
420
Nico Weberb9b9a5a2020-01-28 18:17:22 +0000421 sources = [ "contrib/bench/zlib_bench.cc" ]
Noel Gordonc83e2162018-01-21 11:19:12 +0000422 if (!is_debug) {
423 configs -= [ "//build/config/compiler:default_optimization" ]
424 configs += [ "//build/config/compiler:optimize_speed" ]
425 }
426
Noel Gordona0ea34a2020-04-20 20:32:01 +0000427 deps = [ ":zlib" ]
428
Noel Gordonc83e2162018-01-21 11:19:12 +0000429 configs -= [ "//build/config/compiler:chromium_code" ]
430 configs += [ "//build/config/compiler:no_chromium_code" ]
Noel Gordonc83e2162018-01-21 11:19:12 +0000431}
Adenilson Cavalcanti61bddcc2020-04-08 23:34:58 +0000432
Jamie Madilld0e636e2021-05-27 18:15:40 +0000433if (!is_win || target_os != "winuwp") {
434 executable("minizip_bin") {
435 include_dirs = [ "." ]
Noel Gordon5ef44f02021-05-27 01:07:15 +0000436
Jamie Madilld0e636e2021-05-27 18:15:40 +0000437 sources = [ "contrib/minizip/minizip.c" ]
Noel Gordon5ef44f02021-05-27 01:07:15 +0000438
Jamie Madilld0e636e2021-05-27 18:15:40 +0000439 if (is_clang) {
440 cflags = [ "-Wno-incompatible-pointer-types-discards-qualifiers" ]
441 }
442
443 if (!is_debug) {
444 configs -= [ "//build/config/compiler:default_optimization" ]
445 configs += [ "//build/config/compiler:optimize_speed" ]
446 }
447
448 deps = [ ":minizip" ]
449
450 configs -= [ "//build/config/compiler:chromium_code" ]
451 configs += [ "//build/config/compiler:no_chromium_code" ]
Noel Gordon5ef44f02021-05-27 01:07:15 +0000452 }
453
Jamie Madilld0e636e2021-05-27 18:15:40 +0000454 executable("miniunz_bin") {
455 include_dirs = [ "." ]
456
457 sources = [ "contrib/minizip/miniunz.c" ]
458
459 if (is_clang) {
460 cflags = [ "-Wno-incompatible-pointer-types-discards-qualifiers" ]
461 }
462
463 if (!is_debug) {
464 configs -= [ "//build/config/compiler:default_optimization" ]
465 configs += [ "//build/config/compiler:optimize_speed" ]
466 }
467
468 deps = [ ":minizip" ]
469
470 configs -= [ "//build/config/compiler:chromium_code" ]
471 configs += [ "//build/config/compiler:no_chromium_code" ]
Noel Gordon5ef44f02021-05-27 01:07:15 +0000472 }
Noel Gordon5ef44f02021-05-27 01:07:15 +0000473}
474
Lei Zhang40c3a762020-04-22 04:07:41 +0000475if (build_with_chromium) {
476 test("zlib_unittests") {
Adenilson Cavalcanti699e86d2020-04-29 03:44:04 +0000477 testonly = true
478
Lei Zhang40c3a762020-04-22 04:07:41 +0000479 sources = [
Adenilson Cavalcanti699e86d2020-04-29 03:44:04 +0000480 "contrib/tests/infcover.cc",
481 "contrib/tests/infcover.h",
Hans Wennborgaec16ef2020-09-04 18:04:45 +0000482 "contrib/tests/run_all_unittests.cc",
Lei Zhang40c3a762020-04-22 04:07:41 +0000483 "contrib/tests/utils_unittest.cc",
Hans Wennborg92d41eb2020-11-12 18:10:14 +0000484 "google/compression_utils_unittest.cc",
485 "google/zip_reader_unittest.cc",
486 "google/zip_unittest.cc",
Lei Zhang40c3a762020-04-22 04:07:41 +0000487 ]
Adenilson Cavalcanti61bddcc2020-04-08 23:34:58 +0000488
Hans Wennborg92d41eb2020-11-12 18:10:14 +0000489 data = [ "google/test/data/" ]
490
Lei Zhang40c3a762020-04-22 04:07:41 +0000491 deps = [
492 ":zlib",
Hans Wennborg92d41eb2020-11-12 18:10:14 +0000493 "google:compression_utils",
494 "google:zip",
Hans Wennborgaec16ef2020-09-04 18:04:45 +0000495 "//base/test:test_support",
Lei Zhang40c3a762020-04-22 04:07:41 +0000496 "//testing/gtest",
Lei Zhang40c3a762020-04-22 04:07:41 +0000497 ]
Adenilson Cavalcantif5eca0d2020-05-26 20:39:26 +0000498
Peter Kasting6da1d532021-10-12 17:25:16 +0000499 configs -= [ "//build/config/compiler:chromium_code" ]
500 configs += [ "//build/config/compiler:no_chromium_code" ]
501
Adenilson Cavalcantif5eca0d2020-05-26 20:39:26 +0000502 include_dirs = [
503 "//third_party/googletest/src/googletest/include/gtest",
504 ".",
505 "google",
506 ]
Lei Zhang40c3a762020-04-22 04:07:41 +0000507 }
Adenilson Cavalcanti61bddcc2020-04-08 23:34:58 +0000508}