aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp
diff options
context:
space:
mode:
authorGravatar djsollen <djsollen@google.com>2015-04-01 10:33:55 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-01 10:33:55 -0700
commit2469c999518e7b0063d35e9e2eb074a0477c21ac (patch)
treeae5382d53caae360fe836ee859e5f9a17cb6bf34 /gyp
parent65a8e12287f40b1f3c3623397656f813b942b36f (diff)
Enable both static and dynamically linked libpng
All platforms except android are configured to use the statically linked copy of libpng. Android uses the system provided dynamic copy for SkImageDecoder and the static copy for SkCodec. The exception being android framework builds that currently use the dynamic copy everywhere. This CL also enables NEON optimizations for libpng. Review URL: https://codereview.chromium.org/1032253003
Diffstat (limited to 'gyp')
-rw-r--r--gyp/codec.gyp16
-rw-r--r--gyp/common_variables.gypi9
-rw-r--r--gyp/libpng.gyp142
3 files changed, 83 insertions, 84 deletions
diff --git a/gyp/codec.gyp b/gyp/codec.gyp
index eb49f6cd5c..1373773940 100644
--- a/gyp/codec.gyp
+++ b/gyp/codec.gyp
@@ -18,7 +18,6 @@
'dependencies': [
'core.gyp:*',
'giflib.gyp:giflib',
- 'libpng.gyp:libpng',
],
'cflags':[
# FIXME: This gets around a longjmp warning. See
@@ -47,6 +46,21 @@
'../include/codec',
],
},
+ 'conditions': [
+ [ 'skia_android_framework == 1',
+ {
+ # TODO(djsollen): this is a temporary dependency until we can update
+ # the android framework to a more recent version of libpng.
+ 'dependencies': [
+ 'libpng.gyp:libpng',
+ ],
+ }, { # !skia_android_framework
+ 'dependencies': [
+ 'libpng.gyp:libpng_static',
+ ],
+ }
+ ]
+ ]
},
],
}
diff --git a/gyp/common_variables.gypi b/gyp/common_variables.gypi
index 80ab7c91ed..8fb4620b82 100644
--- a/gyp/common_variables.gypi
+++ b/gyp/common_variables.gypi
@@ -165,15 +165,6 @@
}, {
'skia_release_optimization_level%': '<(skia_default_gcc_optimization_level)',
}],
- [ 'skia_os == "android"', {
- # skia_libpng_static - instead of linking libpng with '-lpng' and
- # including the headers from '/usr/include/png.h', compile and
- # statically link the version of libpng in
- # third_party/externals/libpng.
- 'skia_libpng_static%': '0',
- }, {
- 'skia_libpng_static%': '1',
- }],
[ 'skia_sanitizer', {
'skia_clang_build': 1,
'skia_keep_frame_pointer': 1,
diff --git a/gyp/libpng.gyp b/gyp/libpng.gyp
index 1ca6eef253..9f900983c6 100644
--- a/gyp/libpng.gyp
+++ b/gyp/libpng.gyp
@@ -10,90 +10,84 @@
'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',
],
- 'conditions': [
- ['not arm_neon', {
- 'defines': [
- # FIXME: Why is this needed? Without it, pngpriv.h sets it
- # to 2 if __ARM_NEON is defined, but shouldn't __ARM_NEON
- # not be defined since arm_neon is 0?
- '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',
+ ],
+ 'defines': [
+ 'SKIA_PNG_PREFIXED',
+ ],
+ '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': [
+ ['arm_neon or arm_neon_optional', {
+ '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',
+ ],
+ }],
],
},
]