blob: 938e723b37362a64160cd971dcd829becec741f0 [file] [log] [blame]
# 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_libpng = is_official_build
}
import("../third_party.gni")
if (skia_use_system_libpng) {
system("libpng") {
libs = [ "png" ]
}
} else {
third_party("libpng") {
public_include_dirs = [
".",
"../externals/libpng",
]
defines = [ "PNG_SET_OPTION_SUPPORTED" ]
deps = [
"//third_party/zlib",
]
sources = [
"../externals/libpng/png.c",
"../externals/libpng/pngerror.c",
"../externals/libpng/pngget.c",
"../externals/libpng/pngmem.c",
"../externals/libpng/pngpread.c",
"../externals/libpng/pngread.c",
"../externals/libpng/pngrio.c",
"../externals/libpng/pngrtran.c",
"../externals/libpng/pngrutil.c",
"../externals/libpng/pngset.c",
"../externals/libpng/pngtrans.c",
"../externals/libpng/pngwio.c",
"../externals/libpng/pngwrite.c",
"../externals/libpng/pngwtran.c",
"../externals/libpng/pngwutil.c",
]
if (current_cpu == "arm" || current_cpu == "arm64") {
sources += [
"../externals/libpng/arm/arm_init.c",
"../externals/libpng/arm/filter_neon_intrinsics.c",
"../externals/libpng/arm/palette_neon_intrinsics.c",
]
if (is_clang && is_win) {
# TODO(mtklein): libpng includes arm64_neon.h in clang-cl.exe builds,
# where it should only do that in cl.exe builds, continuing to use
# arm_neon.h with Clang. Until that's fixed, NEON code won't build.
defines += [ "PNG_ARM_NEON_OPT=0" ]
}
}
if (current_cpu == "x86" || current_cpu == "x64") {
defines += [ "PNG_INTEL_SSE" ]
sources += [
"../externals/libpng/intel/filter_sse2_intrinsics.c",
"../externals/libpng/intel/intel_init.c",
]
}
}
}