Name: ICU
URL: http://site.icu-project.org/
License: X License (old version). For license pedigree see the
         ICU FAQ at http://icu-project.org/userguide/icufaq.html
License File: license.html

Description:
This directory contains the source code of ICU 4.6.1 for C/C++.

Local Modifiations:
1. Modified stringpiece.cpp to disable StringPiece::npos in Visual
   Studio 2010 and 2012, which is required in order to build in those
   environments. Chromium made the same change to their
   stringpiece.cpp.

Page Speed uses ICU to enable IDN
(http://en.wikipedia.org/wiki/Internationalized_domain_name) support
in googleurl. Thus we can remove all parts of the ICU data file
(http://userguide.icu-project.org/icudata), except for the IDN
stringprep profile "nameprep" (http://tools.ietf.org/html/rfc3491),
which is required for IDN. To do this we generate a custom ICU data
file. Our process for generating a custom ICU data file is:

On Linux:
Download an ICU source tarball for the version of ICU being used, from
http://site.icu-project.org/download. untar that file, cd into the
'icu' directory, and follow these steps:

cd source
./runConfigureICU Linux
make  # This builds the entire ICU package

cd data
make clean
make build-local
echo "rfc3491.spp" > out/tmp/icudata.lst
make packagedata

The resulting .s file is at out/tmp/icudt46l_dat.s and should be
copied to genfiles/arch/linux/common/icudata/icudt46l_dat.S

In order to prevent exporting the ICU data as a public symbol, we add
#ifndef PUBLIC_SYMBOL
	.hidden icudt46_dat
#endif

near the head of the .S file. See the existing Linux .S file for an example.



On Mac:
Same process as Linux, except for the runConfigureICU step, which
should instead be:
./runConfigureICU MacOSX

In order to prevent exporting the ICU data as a public symbol, we add
	.private_extern _icudt46_dat

near the head of the .s file. See the existing mac .s file for an example.



On Windows:
Download an ICU source zip for the version of ICU being used, from
http://site.icu-project.org/download. unzip that file, open the
'icu->source->allinone' directory, and open allinone.sln in Visual
Studio. Change to a release build and build the 'makedata'
project. Once that completes:

edit source\data\out\tmp\icudata.lst to contain one one line: "rfc3491.spp"

Open a Visual Studio Command Prompt (from the 'Tools' menu) and run:

> cd c:\src\icu\source\data\out\build\icudt46l

> c:\src\icu\bin\pkgdata.exe -f -e icudt46 -v -m static -c -p icudt46l -T c:\src\icu\source\data\out\tmp -L icudt46 -d c:\src\icu\source\data\out\build\icudt46l -s . c:\src\icu\source\data\out\tmp\icudata.lst

This will generate icudt46.lib in source\data\out\tmp, which you can copy to genfiles\arch\win\ia32\icudata and check in.

> c:\src\icu\bin\pkgdata.exe -f -e icudt46 -v -m dll -c -p icudt46l -T c:\src\icu\source\data\out\tmp -L icudt46 -d c:\src\icu\source\data\out\build\icudt46l -s . c:\src\icu\source\data\out\tmp\icudata.lst

This will generate icudt46.dll in the current directory, which you can copy to genfiles\arch\win\ia32\icudata and check in.

