| 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',
 | 
| +          ],
 | 
| +        }],
 | 
| +      ],
 | 
| +    }
 | 
|    ]
 | 
|  }
 | 
| 
 |