Rename png_ functions conflicting with chrome.
Part of the work required to ship XFA with chrome.
BUG=pdfium:396
R=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/1763493002 .
diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
index 92fbcaa..ec6f8cb 100644
--- a/third_party/BUILD.gn
+++ b/third_party/BUILD.gn
@@ -298,6 +298,7 @@
"libpng16/pnglibconf.h",
"libpng16/pngmem.c",
"libpng16/pngpread.c",
+ "libpng16/pngprefix.h",
"libpng16/pngpriv.h",
"libpng16/pngread.c",
"libpng16/pngrio.c",
@@ -320,10 +321,10 @@
"//build/config/compiler:no_chromium_code",
"//third_party/pdfium:pdfium_config",
]
- deps = [ "//third_party:jpeg" ]
+ deps = [
+ "//third_party:jpeg",
+ ]
sources = [
- "libtiff/tiffiop.h",
- "libtiff/tiffvers.h",
"libtiff/tif_aux.c",
"libtiff/tif_close.c",
"libtiff/tif_codec.c",
@@ -359,6 +360,8 @@
"libtiff/tif_warning.c",
"libtiff/tif_write.c",
"libtiff/tif_zip.c",
+ "libtiff/tiffiop.h",
+ "libtiff/tiffvers.h",
]
}
}
diff --git a/third_party/libpng16/README.pdfium b/third_party/libpng16/README.pdfium
index d60bc6f..b0e6805 100644
--- a/third_party/libpng16/README.pdfium
+++ b/third_party/libpng16/README.pdfium
@@ -10,6 +10,7 @@
Local Modifications:
pnglibconf.h: a copy of libpng's scripts/pnglibconf.h.prebuilt.
+pngprefix.h: manually-created redefinitions to avoid conflicts with chome.
0000-build-config.patch: Local build configuration changes.
0001-disable-arm-neon.diff: Disable ARM NEON optimizations.
0002-static-png-gt.patch: Unconditionally use static png_gt() in png.c to avoid compilation warning.
diff --git a/third_party/libpng16/pngprefix.h b/third_party/libpng16/pngprefix.h
new file mode 100644
index 0000000..8eab668
--- /dev/null
+++ b/third_party/libpng16/pngprefix.h
@@ -0,0 +1,17 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef PNGPREFIX_H
+#define PNGPREFIX_H
+
+// The purpose of this file is to rename conflicting functions
+// when this version of libpng and chromium's version of it are
+// both simultaneously present.
+
+#define png_get_uint_32 PDFIUM_png_get_uint_32
+#define png_get_uint_16 PDFIUM_png_get_uint_16
+#define png_get_int_32 PDFIUM_png_get_int_32
+#define png_get_int_16 PDFIUM_png_get_int_16
+
+#endif // PNGPREFIX_H
diff --git a/third_party/third_party.gyp b/third_party/third_party.gyp
index 6746230..d58c9a7 100644
--- a/third_party/third_party.gyp
+++ b/third_party/third_party.gyp
@@ -10,7 +10,6 @@
'defines': [
'OPJ_STATIC',
'PNG_PREFIX',
- 'PNGPREFIX_H',
'PNG_USE_READ_MACROS',
'_CRT_SECURE_NO_WARNINGS',
],
@@ -280,6 +279,7 @@
'libpng16/pnglibconf.h',
'libpng16/pngmem.c',
'libpng16/pngpread.c',
+ 'libpng16/pngprefix.h',
'libpng16/pngpriv.h',
'libpng16/pngread.c',
'libpng16/pngrio.c',