| # Copyright 2016 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/arm.gni") |
| |
| config("libpng_config") { |
| include_dirs = [ |
| "src", |
| ".", |
| ] |
| defines = [] |
| } |
| |
| # Must be in a config because of how GN orders flags (otherwise -Wall will |
| # appear after this, and turn it back on). |
| config("clang_warnings") { |
| if (is_clang) { |
| cflags = [ |
| "-Wno-conversion", |
| "-Wno-implicit-fallthrough", |
| "-Wno-sign-compare", |
| "-Wno-null-pointer-subtraction", |
| |
| # libpng checks that the width is not greater than PNG_SIZE_MAX. |
| # On platforms where size_t is 64-bits, this comparison will always |
| # be false. |
| "-Wno-tautological-constant-out-of-range-compare", |
| |
| "-Wno-unused-but-set-parameter", |
| "-Wno-unused-but-set-variable", |
| ] |
| } |
| } |
| |
| source_set("libpng") { |
| sources = [ |
| "pnglibconf.h", |
| "pngprefix.h", |
| "src/png.c", |
| "src/png.h", |
| "src/pngconf.h", |
| "src/pngerror.c", |
| "src/pngget.c", |
| "src/pnginfo.h", |
| "src/pngmem.c", |
| "src/pngpread.c", |
| "src/pngpriv.h", |
| "src/pngread.c", |
| "src/pngrio.c", |
| "src/pngrtran.c", |
| "src/pngrutil.c", |
| "src/pngset.c", |
| "src/pngstruct.h", |
| "src/pngtrans.c", |
| "src/pngwio.c", |
| "src/pngwrite.c", |
| "src/pngwtran.c", |
| "src/pngwutil.c", |
| ] |
| defines = [] |
| cflags = [] |
| if (current_cpu == "x86" || current_cpu == "x64") { |
| sources += [ |
| "src/intel/filter_sse2_intrinsics.c", |
| "src/intel/intel_init.c", |
| ] |
| defines += [ "PNG_INTEL_SSE_OPT=1" ] |
| } else if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) { |
| sources += [ |
| "src/arm/arm_init.c", |
| "src/arm/filter_neon_intrinsics.c", |
| "src/arm/palette_neon_intrinsics.c", |
| ] |
| defines += [ |
| "PNG_ARM_NEON_OPT=2", |
| "PNG_ARM_NEON_IMPLEMENTATION=1", |
| ] |
| } |
| |
| public_configs = [ ":libpng_config" ] |
| public_deps = [ "//third_party/zlib" ] |
| configs += [ ":clang_warnings" ] |
| } |