diff options
Diffstat (limited to 'gyp/libpng.gyp')
-rw-r--r-- | gyp/libpng.gyp | 160 |
1 files changed, 92 insertions, 68 deletions
diff --git a/gyp/libpng.gyp b/gyp/libpng.gyp index 73bdd2aa3c..d918f2d403 100644 --- a/gyp/libpng.gyp +++ b/gyp/libpng.gyp @@ -10,85 +10,109 @@ 'targets': [ { 'target_name': 'libpng', + 'type': 'none', 'conditions': [ - [ 'skia_libpng_static', + [ 'skia_os == "android"', { - 'type': 'static_library', - 'include_dirs': [ - '../third_party/externals/libpng', - # Needed for generated pnglibconf.h - '../third_party/libpng', - ], 'dependencies': [ - 'zlib.gyp:zlib', + 'android_deps.gyp:png', ], 'export_dependent_settings': [ - 'zlib.gyp:zlib', - ], - 'direct_dependent_settings': { - 'include_dirs': [ - '../third_party/externals/libpng', - # Needed for generated pnglibconf.h - '../third_party/libpng', - ], - }, - 'cflags': [ - '-w', - '-fvisibility=hidden', + 'android_deps.gyp:png', ], - 'defines': [ - # TODO: it'd be nice to enable PNG's NEON when possible. - 'PNG_ARM_NEON_OPT=0', + }, { # skia_os != "android" + 'dependencies': [ + 'libpng.gyp:libpng_static', ], - 'sources': [ - '../third_party/externals/libpng/png.c', - '../third_party/externals/libpng/pngerror.c', - '../third_party/externals/libpng/pngget.c', - '../third_party/externals/libpng/pngmem.c', - '../third_party/externals/libpng/pngpread.c', - '../third_party/externals/libpng/pngread.c', - '../third_party/externals/libpng/pngrio.c', - '../third_party/externals/libpng/pngrtran.c', - '../third_party/externals/libpng/pngrutil.c', - '../third_party/externals/libpng/pngset.c', - '../third_party/externals/libpng/pngtrans.c', - '../third_party/externals/libpng/pngwio.c', - '../third_party/externals/libpng/pngwrite.c', - '../third_party/externals/libpng/pngwtran.c', - '../third_party/externals/libpng/pngwutil.c', + 'export_dependent_settings': [ + 'libpng.gyp:libpng_static', ], - }, { # not skia_libpng_static - 'type': 'none', - 'conditions': [ - [ 'skia_os == "android"', - { - # TODO(halcanary): merge all png targets into this file. - 'dependencies': [ - 'android_deps.gyp:png', - ], - 'export_dependent_settings': [ - 'android_deps.gyp:png', - ], - }, { # skia_os != "android" - 'dependencies': [ - 'zlib.gyp:zlib', - ], - 'export_dependent_settings': [ - 'zlib.gyp:zlib', - ], - 'direct_dependent_settings': { - 'link_settings': { - 'libraries': [ - '-lpng', - ], - }, - }, - } - ] - ] } ] + ] + }, + { + 'target_name': 'libpng_static', + 'type': 'static_library', + 'standalone_static_library': 1, + 'include_dirs': [ + # Needed for generated pnglibconf.h and pngprefix.h + '../third_party/libpng', + '../third_party/externals/libpng', + ], + 'dependencies': [ + 'zlib.gyp:zlib', + ], + 'export_dependent_settings': [ + 'zlib.gyp:zlib', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '../third_party/externals/libpng', + # Needed for generated pnglibconf.h and pngprefix.h + '../third_party/libpng', + ], + 'defines': [ + 'SKIA_PNG_PREFIXED', + ], + }, + 'cflags': [ + '-w', + '-fvisibility=hidden', + ], + 'sources': [ + '../third_party/externals/libpng/png.c', + '../third_party/externals/libpng/pngerror.c', + '../third_party/externals/libpng/pngget.c', + '../third_party/externals/libpng/pngmem.c', + '../third_party/externals/libpng/pngpread.c', + '../third_party/externals/libpng/pngread.c', + '../third_party/externals/libpng/pngrio.c', + '../third_party/externals/libpng/pngrtran.c', + '../third_party/externals/libpng/pngrutil.c', + '../third_party/externals/libpng/pngset.c', + '../third_party/externals/libpng/pngtrans.c', + '../third_party/externals/libpng/pngwio.c', + '../third_party/externals/libpng/pngwrite.c', + '../third_party/externals/libpng/pngwtran.c', + '../third_party/externals/libpng/pngwutil.c', + ], + 'conditions': [ + [ 'skia_os == "ios"', { + # explicitly disable looking for NEON on iOS builds + 'defines': [ + 'PNG_ARM_NEON_OPT=0', + ], + }, { # skia_os != "ios" + 'dependencies': [ + 'libpng.gyp:libpng_static_neon', + ], + }], ], }, + { + 'target_name': 'libpng_static_neon', + 'type': 'static_library', + 'include_dirs': [ + # Needed for generated pnglibconf.h and pngprefix.h + '../third_party/libpng', + '../third_party/externals/libpng', + ], + 'dependencies': [ + 'zlib.gyp:zlib', + ], + 'sources': [ + '../third_party/externals/libpng/arm/arm_init.c', + '../third_party/externals/libpng/arm/filter_neon.S', + '../third_party/externals/libpng/arm/filter_neon_intrinsics.c', + ], + 'conditions': [ + ['arm_neon_optional', { + 'cflags': [ + '-mfpu=neon', + ], + }], + ], + } ] } |