# Copyright 2014 The Chromium 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/chromecast_build.gni") import("//build/config/arm.gni") config("libpng_config") { include_dirs = [ "." ] defines = [] if (is_win) { if (is_component_build) { defines += [ "PNG_USE_DLL", "PNG_NO_MODULEDEF", ] } } } # 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 = [ # 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", ] } } # Cannot be a static_library in component builds source_set("libpng_sources") { sources = [ "png.c", "png.h", "pngconf.h", "pngdebug.h", "pngerror.c", "pngget.c", "pnginfo.h", "pnglibconf.h", "pngmem.c", "pngpread.c", "pngprefix.h", "pngpriv.h", "pngread.c", "pngrio.c", "pngrtran.c", "pngrutil.c", "pngset.c", "pngstruct.h", "pngtrans.c", "pngwio.c", "pngwrite.c", "pngwtran.c", "pngwutil.c", ] defines = [] cflags = [] if (current_cpu == "x86" || current_cpu == "x64") { sources += [ "intel/filter_sse2_intrinsics.c", "intel/intel_init.c", ] defines += [ "PNG_INTEL_SSE_OPT=1" ] } else if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) { sources += [ "arm/arm_init.c", "arm/filter_neon_intrinsics.c", ] defines += [ "PNG_ARM_NEON_OPT=2", "PNG_ARM_NEON_IMPLEMENTATION=1", ] } configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code" ] if (is_win) { # Unary minus applied to unsigned type. cflags += [ "/wd4146" ] } if (is_win && is_component_build) { defines += [ "PNG_BUILD_DLL" ] } public_configs = [ ":libpng_config" ] public_deps = [ "//third_party/zlib", ] configs += [ ":clang_warnings" ] } if (is_win) { component("libpng") { public_deps = [ ":libpng_sources", ] } } else { group("libpng") { public_deps = [ ":libpng_sources", ] } }