moz-skia/third_party/iconv
commit-bot@chromium.org 327c081e4b Add libpoppler for PDF rendering, take 2
R=vandebo@chromium.org, edisonn@google.com

Author: richardlin@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23301009

git-svn-id: http://skia.googlecode.com/svn/trunk@10833 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 18:57:01 +00:00
..
config Add libpoppler for PDF rendering, take 2 2013-08-20 18:57:01 +00:00
LICENSE Add libpoppler for PDF rendering, take 2 2013-08-20 18:57:01 +00:00
README.chromium Add libpoppler for PDF rendering, take 2 2013-08-20 18:57:01 +00:00

README.chromium

Name: libiconv
Short Name: libiconv
URL: git://git.savannah.gnu.org/libiconv.git
Version: 1.14
License: Libraries under LGPL, program under GPL
License File: NOT_SHIPPED
Security Critical: No

Description:
iconv is a library for converting between different character encodings.
Used in Skia as a dependency of libpoppler, for PDF rasterization during
testing.

Local Modifications:
No changes to files from the upstream repository.
Platform-specific configuration files added to
third_party/iconv/config/windows:
  config.h
  iconv.h
  localcharset.h

These files were created from the header templates based on instructions in:
http://www.codeproject.com/Articles/302012/How-to-Build-libiconv-with-Microsoft-Visual-Studio,
then kludging it to build. The process used to create them from release
sources are:
1. Download the libiconv-1.14 tarball from
   http://www.gnu.org/software/libiconv/#downloading
2. Copy and rename these files:
    (libiconv-1.14)/libcharset/include/localcharset.h.build.in
      -> third_party/iconv/config/windows/localcharset.h
    (libiconv-1.14)/include/iconv.h.build.in
      -> third_party/iconv/config/windows/iconv.h
    (libiconv-1.14)/config.h.in
      -> third_party/iconv/config/windows/config.h
3. Modify localcharset.h as follows:
    Replace
      #if @HAVE_VISIBILITY@ && BUILDING_LIBCHARSET
      #define LIBCHARSET_DLL_EXPORTED __attribute__((__visibility__("default")))
      #else
      #define LIBCHARSET_DLL_EXPORTED
      #endif
    with
      #define LIBCHARSET_DLL_EXPORTED
4. Modify config.h as follows:
    Delete line 30:
      #undef EILSEQ
    Change line 686 to:
      #define ICONV_CONST const
5. Modify iconv.h as follows:
    Replace
      #if @HAVE_VISIBILITY@ && BUILDING_LIBICONV
      #define LIBICONV_DLL_EXPORTED __attribute__((__visibility__("default")))
      #else
      #define LIBICONV_DLL_EXPORTED
      #endif
    with
      #define LIBICONV_DLL_EXPORTED 
    Delete all references to @DLL_VARIABLE@ (find and replace with nothing).
    Find and replace these:
      @ICONV_CONST@ -> const
      @USE_MBSTATE_T@ -> USE_MBSTATE_T
      @BROKEN_WCHAR_H@ -> BROKEN_WCHAR_H
      @HAVE_WCHAR_T@ -> HAVE_WCHAR_T
Note: if a dynamic library is needed for whatever reason,
LIBCHARSET_DLL_EXPORTED and LIBICONV_DLL_EXPORTED needs to be defined as
either __declspec(dllexport) or __declspec(dllimport).

Autogenerated files (consistent across platforms) added to
third_party/iconv/config:
  aliases.h
  canonical_dos.h
  canonical.h
  canonical_local.h
  flags.h

These files were pulled from a release tarball.