| # Copyright 2017 The ANGLE Project Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| config("libpng_config") { |
| include_dirs = [ "src" ] |
| cflags = [] |
| if (is_clang) { |
| cflags += [ "-Wno-tautological-constant-out-of-range-compare" ] |
| } |
| if (is_apple) { |
| # TODO(crbug.com/41492875): this can be removed once libpng is updated to include |
| # https://github.com/pnggroup/libpng/commit/893b8113f04d408cc6177c6de19c9889a48faa24 |
| cflags += [ "-fno-define-target-os-macros" ] |
| } |
| } |
| |
| static_library("libpng") { |
| sources = [ |
| "src/png.c", |
| "src/pngerror.c", |
| "src/pngget.c", |
| "src/pngmem.c", |
| "src/pngpread.c", |
| "src/pngread.c", |
| "src/pngrio.c", |
| "src/pngrtran.c", |
| "src/pngrutil.c", |
| "src/pngset.c", |
| "src/pngtrans.c", |
| "src/pngwio.c", |
| "src/pngwrite.c", |
| "src/pngwtran.c", |
| "src/pngwutil.c", |
| ] |
| |
| # Note: currently pnglibconf.h defines this, but if it gets dropped in a |
| # future roll, needs to be added here for the other defines to work. |
| # defines = [ "PNG_SET_OPTION_SUPPORTED" ] |
| 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 (target_cpu == "arm" || target_cpu == "arm64") { |
| 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", |
| ] |
| } |
| if (is_win) { |
| cflags = [ "/wd4028" ] |
| } |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ "//build/config/compiler:no_chromium_code" ] |
| public_configs = [ ":libpng_config" ] |
| deps = [ "//third_party/zlib:zlib" ] |
| } |