| # 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. |
| |
| config("libpng_config") { |
| include_dirs = [ "." ] |
| |
| defines = [ |
| "CHROME_PNG_WRITE_SUPPORT", |
| "PNG_USER_CONFIG", |
| ] |
| |
| if (is_starboard) { |
| defines += [ "PNG_SKIP_SETJMP_CHECK" ] |
| } |
| |
| if (is_win && is_component_build) { |
| defines += [ "PNG_USE_DLL" ] |
| } |
| } |
| |
| # 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-compare", |
| ] |
| } |
| } |
| |
| source_set("libpng_sources") { |
| sources = [ |
| "png.c", |
| "png.h", |
| "pngconf.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", |
| ] |
| |
| if (is_starboard) { |
| sources -= [ |
| "pnginfo.h", |
| "pnglibconf.h", |
| "pngprefix.h", |
| "pngpriv.h", |
| "pngread.c", |
| "pngstruct.h", |
| ] |
| sources += [ |
| "pnggccrd.c", |
| "pngusr.h", |
| "pngvcrd.c", |
| ] |
| } |
| |
| if (!is_win) { |
| output_name = "png" |
| } |
| |
| defines = [] |
| if (is_win && is_component_build) { |
| defines += [ |
| "PNG_BUILD_DLL", |
| "PNG_NO_MODULEDEF", |
| ] |
| } |
| |
| configs += [ ":clang_warnings" ] |
| |
| if (is_starboard) { |
| configs -= [ "//starboard/build/config:size" ] |
| configs += [ "//starboard/build/config:speed" ] |
| deps = [ "//starboard:starboard_headers_only" ] |
| } |
| |
| public_deps = [ "//third_party/zlib" ] |
| |
| public_configs = [ ":libpng_config" ] |
| } |
| |
| if (is_win) { |
| component("libpng") { |
| public_deps = [ ":libpng_sources" ] |
| } |
| } else { |
| group("libpng") { |
| public_deps = [ ":libpng_sources" ] |
| } |
| } |