summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 18:11:11 +0000
committeragl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 18:11:11 +0000
commit27a72f81f25f01298ce4fa53b335fb8bcac577cd (patch)
treebe62514eae18368cdc83b64c76ab6af5e77beffe
parent69afd3be275f0cca3df82f5843f276a349cc93f3 (diff)
downloadchromium_src-27a72f81f25f01298ce4fa53b335fb8bcac577cd.zip
chromium_src-27a72f81f25f01298ce4fa53b335fb8bcac577cd.tar.gz
chromium_src-27a72f81f25f01298ce4fa53b335fb8bcac577cd.tar.bz2
Linux: add GYP variable to use the system libpng.
Since our packagers have been requesting that we support using more system libraries, I'm starting to commit these sorts of changes. However, please note that one MUST NOT use the system libpng on, at least, Ubuntu 64-bit. Because Chromium on Linux is still a 32-bit build we end up with the 32-bit compat versions of libraries and, on Ubuntu at least, this includes a very old libpng with security issues. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21663 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--base/gfx/png_decoder.cc4
-rw-r--r--base/gfx/png_encoder.cc4
-rw-r--r--third_party/libpng/libpng.gyp131
3 files changed, 90 insertions, 49 deletions
diff --git a/base/gfx/png_decoder.cc b/base/gfx/png_decoder.cc
index fe0bf893..5b27ed8 100644
--- a/base/gfx/png_decoder.cc
+++ b/base/gfx/png_decoder.cc
@@ -8,7 +8,11 @@
#include "third_party/skia/include/core/SkBitmap.h"
extern "C" {
+#if defined(USE_SYSTEM_LIBPNG)
+#include <png.h>
+#else
#include "third_party/libpng/png.h"
+#endif
}
namespace {
diff --git a/base/gfx/png_encoder.cc b/base/gfx/png_encoder.cc
index c342736..10a60c6 100644
--- a/base/gfx/png_encoder.cc
+++ b/base/gfx/png_encoder.cc
@@ -10,7 +10,11 @@
#include "third_party/skia/include/core/SkUnPreMultiply.h"
extern "C" {
+#if defined(USE_SYSTEM_LIBPNG)
+#include <png.h>
+#else
#include "third_party/libpng/png.h"
+#endif
}
namespace {
diff --git a/third_party/libpng/libpng.gyp b/third_party/libpng/libpng.gyp
index 63bd9d7..03320e8 100644
--- a/third_party/libpng/libpng.gyp
+++ b/third_party/libpng/libpng.gyp
@@ -6,55 +6,88 @@
'includes': [
'../../build/common.gypi',
],
- 'targets': [
- {
- 'target_name': 'libpng',
- 'type': '<(library)',
- 'dependencies': [
- '../zlib/zlib.gyp:zlib',
+ 'variables': {
+ 'use_system_libpng%': 0,
+ },
+ 'conditions': [
+ ['use_system_libpng==0', {
+ 'targets': [
+ {
+ 'target_name': 'libpng',
+ 'type': '<(library)',
+ 'dependencies': [
+ '../zlib/zlib.gyp:zlib',
+ ],
+ 'defines': [
+ 'CHROME_PNG_WRITE_SUPPORT',
+ 'PNG_USER_CONFIG',
+ ],
+ 'msvs_guid': 'C564F145-9172-42C3-BFCB-6014CA97DBCD',
+ 'sources': [
+ 'png.c',
+ 'png.h',
+ 'pngconf.h',
+ 'pngerror.c',
+ 'pnggccrd.c',
+ 'pngget.c',
+ 'pngmem.c',
+ 'pngpread.c',
+ 'pngread.c',
+ 'pngrio.c',
+ 'pngrtran.c',
+ 'pngrutil.c',
+ 'pngset.c',
+ 'pngtrans.c',
+ 'pngusr.h',
+ 'pngvcrd.c',
+ 'pngwio.c',
+ 'pngwrite.c',
+ 'pngwtran.c',
+ 'pngwutil.c',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '.',
+ ],
+ 'defines': [
+ 'CHROME_PNG_WRITE_SUPPORT',
+ 'PNG_USER_CONFIG',
+ ],
+ },
+ 'export_dependent_settings': [
+ '../zlib/zlib.gyp:zlib',
+ ],
+ 'conditions': [
+ ['OS!="win"', {'product_name': 'png'}],
+ ],
+ },
+ ]
+ }, {
+ 'targets': [
+ {
+ 'target_name': 'libpng',
+ 'type': '<(library)',
+ 'dependencies': [
+ '../zlib/zlib.gyp:zlib',
+ ],
+ 'defines': [
+ 'USE_SYSTEM_LIBPNG',
+ ],
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(pkg-config --cflags libpng)',
+ ],
+ },
+ 'link_settings': {
+ 'ldflags': [
+ '<!@(pkg-config --libs-only-L --libs-only-other libpng)',
+ ],
+ 'libraries': [
+ '<!@(pkg-config --libs-only-l libpng)',
+ ],
+ },
+ },
],
- 'defines': [
- 'CHROME_PNG_WRITE_SUPPORT',
- 'PNG_USER_CONFIG',
- ],
- 'msvs_guid': 'C564F145-9172-42C3-BFCB-6014CA97DBCD',
- 'sources': [
- 'png.c',
- 'png.h',
- 'pngconf.h',
- 'pngerror.c',
- 'pnggccrd.c',
- 'pngget.c',
- 'pngmem.c',
- 'pngpread.c',
- 'pngread.c',
- 'pngrio.c',
- 'pngrtran.c',
- 'pngrutil.c',
- 'pngset.c',
- 'pngtrans.c',
- 'pngusr.h',
- 'pngvcrd.c',
- 'pngwio.c',
- 'pngwrite.c',
- 'pngwtran.c',
- 'pngwutil.c',
- ],
- 'direct_dependent_settings': {
- 'include_dirs': [
- '.',
- ],
- 'defines': [
- 'CHROME_PNG_WRITE_SUPPORT',
- 'PNG_USER_CONFIG',
- ],
- },
- 'export_dependent_settings': [
- '../zlib/zlib.gyp:zlib',
- ],
- 'conditions': [
- ['OS!="win"', {'product_name': 'png'}],
- ],
- },
+ }],
],
}