skia2/third_party/zlib/BUILD.gn
Mike Klein ec3bdbb639 Turn on x86-specific code when building zlib.
The zlib source we DEPS in for testing has been patched with x86
optimizations, some requring SSE2, some SSE4.2, and some PCLMULQDQ
(between SSE4.2 and AVX).

Might as well turn them on?

zlib actually boils everything down into one do-we-have-everything bit.
That's a little weird... I don't see any real reason not to use
fill_window_sse() on a machine with SSE2 but not SSE4.2.  Whatever.

While tweaking libpng settings is really where it's at to make PNG
encoding faster, this is kind of a nice little cherry on top.  Won't
help people who are using their own zlib, of course.

BUG=skia:6409

Change-Id: I459689069f7559365a66d0d29b33664907704d8e
Reviewed-on: https://skia-review.googlesource.com/10033
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-03-23 13:36:31 +00:00

63 lines
1.4 KiB
Plaintext

# Copyright 2016 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
declare_args() {
skia_use_system_zlib = is_official_build
}
import("../third_party.gni")
if (skia_use_system_zlib) {
system("zlib") {
libs = [ "z" ]
}
} else {
third_party("zlib") {
public_include_dirs = [ "../externals/zlib" ]
deps = [
":zlib_x86",
]
sources = [
"../externals/zlib/adler32.c",
"../externals/zlib/compress.c",
"../externals/zlib/crc32.c",
"../externals/zlib/deflate.c",
"../externals/zlib/gzclose.c",
"../externals/zlib/gzlib.c",
"../externals/zlib/gzread.c",
"../externals/zlib/gzwrite.c",
"../externals/zlib/infback.c",
"../externals/zlib/inffast.c",
"../externals/zlib/inflate.c",
"../externals/zlib/inftrees.c",
"../externals/zlib/trees.c",
"../externals/zlib/uncompr.c",
"../externals/zlib/zutil.c",
]
}
}
third_party("zlib_x86") {
public_include_dirs = []
if (target_cpu == "x86" || target_cpu == "x64") {
sources = [
"../externals/zlib/crc_folding.c",
"../externals/zlib/fill_window_sse.c",
"../externals/zlib/x86.c",
]
if (!is_win) {
cflags_c = [
"-msse4.2",
"-mpclmul",
]
}
} else {
sources = [
"../externals/zlib/simd_stub.c",
]
}
}