blob: cfaafee00f1bf4feef74750275638a94fa2dcb10 [file] [log] [blame]
# Copyright (c) 2009 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.
{
'variables': {
'conditions': [
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
# Link to system .so since we already use it due to GTK.
'use_system_libpng%': 1,
}, { # OS!="linux" and OS!="freebsd" and OS!="openbsd"
'use_system_libpng%': 0,
}],
],
},
'conditions': [
['use_system_libpng==0', {
'targets': [
{
'target_name': 'libpng',
'type': '<(component)',
'dependencies': [
'../zlib/zlib.gyp:zlib',
],
'msvs_guid': 'C564F145-9172-42C3-BFCB-6014CA97DBCD',
'sources': [
'src/png.c',
'src/png.h',
'src/pngconf.h',
'src/pngerror.c',
'src/pnggccrd.c',
'src/pngget.c',
'src/pngmem.c',
'src/pngpread.c',
'src/pngread.c',
'src/pngrio.c',
'src/pngrtran.c',
'src/pngrutil.c',
'src/pngset.c',
'src/pngtrans.c',
'src/pngusr.h',
'src/pngvcrd.c',
'src/pngwio.c',
'src/pngwrite.c',
'src/pngwtran.c',
'src/pngwutil.c',
],
'direct_dependent_settings': {
'include_dirs': [
'src/',
],
'defines': [
# We end up including setjmp.h directly, but libpng
# doesn't like that. This define tells libpng to not
# complain about our inclusion of setjmp.h.
'PNG_SKIP_SETJMP_CHECK',
],
},
'export_dependent_settings': [
'../zlib/zlib.gyp:zlib',
],
'conditions': [
['OS!="win"', {'product_name': 'png'}],
['OS=="win" and component=="shared_library"', {
'defines': [
'PNG_BUILD_DLL',
'PNG_NO_MODULEDEF',
],
'direct_dependent_settings': {
'defines': [
'PNG_USE_DLL',
],
},
}],
],
},
]
}, {
'conditions': [
['sysroot!=""', {
'variables': {
'pkg-config': '../../build/linux/pkg-config-wrapper "<(sysroot)"',
},
}, {
'variables': {
'pkg-config': 'pkg-config'
},
}],
],
'targets': [
{
'target_name': 'libpng',
'type': 'none',
'dependencies': [
'../zlib/zlib.gyp:zlib',
],
'variables': {
# Quoth libpagespeed's libpng.gyp:
# "The PNG_FREE_ME_SUPPORTED define was dropped in libpng
# 1.4.0beta78, with its behavior becoming the default
# behavior."
#
# Hence, we define it ourselves for version >= 1.4.0 so that
# libpagespeed's code (which checks PNG_FREE_ME_SUPPORTED for
# compatibility with earlier versions) will run with both earlier
# and later versions of libpng.
#
# This detects the version and sets the variable to non-zero for
# pre-1.4 versions.
'png_free_me_suported_define_in_libpng' :
'<!(<(pkg-config) --atleast-version=1.4.0 libpng; echo $?)'
},
'direct_dependent_settings': {
'cflags': [
'<!@(<(pkg-config) --cflags libpng)',
],
'defines+': [
'USE_SYSTEM_LIBPNG',
'DBG=<(png_free_me_suported_define_in_libpng)',
# We end up including setjmp.h directly, but libpng
# doesn't like that. This define tells libpng to not
# complain about our inclusion of setjmp.h.
'PNG_SKIP_SETJMP_CHECK',
],
},
'conditions': [
['<(png_free_me_suported_define_in_libpng)==0', {
'direct_dependent_settings': {
'defines+': [
'PNG_FREE_ME_SUPPORTED',
],
}
}],
],
'link_settings': {
'ldflags': [
'<!@(<(pkg-config) --libs-only-L --libs-only-other libpng)',
],
'libraries': [
'<!@(<(pkg-config) --libs-only-l libpng)',
],
},
},
],
}],
],
}
# Local Variables:
# tab-width:2
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=2 shiftwidth=2: