Index: gyp/libpng.gyp |
diff --git a/gyp/libpng.gyp b/gyp/libpng.gyp |
index 73bdd2aa3cbd5cd36610f74115f36c07ebc7919e..d918f2d403db2c795fd1d74980d9f819b5190039 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', |
+ ], |
+ }], |
+ ], |
+ } |
] |
} |