skia2/third_party/libjpeg-turbo/BUILD.gn
Leon Scroggins III 21706f1d14 Switch Skia's libjpeg-turbo used for testing to Chromium version
Bug: chromium:922430
Bug: b/135180511

Chromium has diverged from upstream libjpeg-turbo in order to take
advantage of SIMD optimizations that have not yet been merged into
upstream. Android is also interested in using these. Switch to the
version with the optimizations in order to test them.

Chromium has its own jconfig.h and jconfigint.h, so ours are never used
after the switch. Remove them. The only Skia-specific modification to
these files was to define flags to enable arithmetic encoding. Move
them to BUILD.gn, so they're still applied. Also remove jsimdcfg.inc,
which is currently unused. (It appears to be only for x86/x64, where we
are not building SIMD anyway.)

Update BUILD.gn to build SIMD files on arm. The existing ones have
moved, and there are new ones to build, too.

Change-Id: I47606609c23be43b319150ffb5a4fe55d8869755
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311105
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2020-08-18 14:08:15 +00:00

115 lines
4.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_libjpeg_turbo = is_official_build
}
import("../third_party.gni")
if (skia_use_system_libjpeg_turbo) {
system("libjpeg") {
libs = [ "jpeg" ]
}
} else {
third_party("libjpeg") {
public_include_dirs = [
".",
"../externals/libjpeg-turbo",
]
defines = [
"TURBO_FOR_WINDOWS",
# Add support for arithmetic encoding (C_) and decoding (D_).
# This matches Android. Note that such JPEGs are likely rare, given lack of
# support by major browsers.
"C_ARITH_CODING_SUPPORTED=1",
"D_ARITH_CODING_SUPPORTED=1",
]
if (!is_win || is_clang) {
defines += [ "USE_CLZ_INTRINSIC" ] # Cuts a 64K table.
}
sources = [
"../externals/libjpeg-turbo/jaricom.c",
"../externals/libjpeg-turbo/jcapimin.c",
"../externals/libjpeg-turbo/jcapistd.c",
"../externals/libjpeg-turbo/jcarith.c",
"../externals/libjpeg-turbo/jccoefct.c",
"../externals/libjpeg-turbo/jccolor.c",
"../externals/libjpeg-turbo/jcdctmgr.c",
"../externals/libjpeg-turbo/jchuff.c",
"../externals/libjpeg-turbo/jcinit.c",
"../externals/libjpeg-turbo/jcmainct.c",
"../externals/libjpeg-turbo/jcmarker.c",
"../externals/libjpeg-turbo/jcmaster.c",
"../externals/libjpeg-turbo/jcomapi.c",
"../externals/libjpeg-turbo/jcparam.c",
"../externals/libjpeg-turbo/jcphuff.c",
"../externals/libjpeg-turbo/jcprepct.c",
"../externals/libjpeg-turbo/jcsample.c",
"../externals/libjpeg-turbo/jdapimin.c",
"../externals/libjpeg-turbo/jdapistd.c",
"../externals/libjpeg-turbo/jdarith.c",
"../externals/libjpeg-turbo/jdcoefct.c",
"../externals/libjpeg-turbo/jdcolor.c",
"../externals/libjpeg-turbo/jddctmgr.c",
"../externals/libjpeg-turbo/jdhuff.c",
"../externals/libjpeg-turbo/jdinput.c",
"../externals/libjpeg-turbo/jdmainct.c",
"../externals/libjpeg-turbo/jdmarker.c",
"../externals/libjpeg-turbo/jdmaster.c",
"../externals/libjpeg-turbo/jdmerge.c",
"../externals/libjpeg-turbo/jdphuff.c",
"../externals/libjpeg-turbo/jdpostct.c",
"../externals/libjpeg-turbo/jdsample.c",
"../externals/libjpeg-turbo/jerror.c",
"../externals/libjpeg-turbo/jfdctflt.c",
"../externals/libjpeg-turbo/jfdctfst.c",
"../externals/libjpeg-turbo/jfdctint.c",
"../externals/libjpeg-turbo/jidctflt.c",
"../externals/libjpeg-turbo/jidctfst.c",
"../externals/libjpeg-turbo/jidctint.c",
"../externals/libjpeg-turbo/jidctred.c",
"../externals/libjpeg-turbo/jmemmgr.c",
"../externals/libjpeg-turbo/jmemnobs.c",
"../externals/libjpeg-turbo/jpeg_nbits_table.c",
"../externals/libjpeg-turbo/jquant1.c",
"../externals/libjpeg-turbo/jquant2.c",
"../externals/libjpeg-turbo/jutils.c",
]
if (current_cpu == "arm" && !is_ios && !is_win) {
sources += [
"../externals/libjpeg-turbo/simd/arm/arm/jsimd.c",
"../externals/libjpeg-turbo/simd/arm/arm/jsimd_neon.S",
"../externals/libjpeg-turbo/simd/arm/common/jcsample-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdcolor-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdmerge-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdsample-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctfst-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctint-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctred-neon.c",
]
} else if (current_cpu == "arm64" && !is_ios && !is_win) {
sources += [
"../externals/libjpeg-turbo/simd/arm/arm64/jsimd.c",
"../externals/libjpeg-turbo/simd/arm/arm64/jsimd_neon.S",
"../externals/libjpeg-turbo/simd/arm/common/jcsample-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdcolor-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdmerge-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jdsample-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctfst-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctint-neon.c",
"../externals/libjpeg-turbo/simd/arm/common/jidctred-neon.c",
]
} else {
sources += [ "../externals/libjpeg-turbo/jsimd_none.c" ]
}
}
}