summaryrefslogtreecommitdiff
path: root/tools/icu
AgeCommit message (Collapse)Author
2016-07-12tools: fix broken format stringSakthipriyan Vairamani
The format specifier is incomplete and without this the program will fail at runtime, with "incomplete format" error. PR-URL: https://github.com/nodejs/node/pull/7620 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-07-08tools: remove unnecessary imports and assignmentsSakthipriyan Vairamani
PR-URL: https://github.com/nodejs/node/pull/7483 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
2016-06-29net: use icu's punycode implementationJames M Snell
ICU has a punycode implementation built in. Use it instead of the javascript implementation because it's much faster. PR-URL: https://github.com/nodejs/node/pull/7355 Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-06-28tools: fix -Wunused-variable warningBen Noordhuis
PR-URL: https://github.com/nodejs/node/pull/7462 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2016-06-28src: fix runtime/references cpplint warningsBen Noordhuis
PR-URL: https://github.com/nodejs/node/pull/7462 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2016-05-04tools: Check in tools for shrinking ICU size, change default to small-icuSteven R. Loomis
* Change configure default to "small-icu" (Intl on, English only) * add "--without-intl" and "vcbuild without-intl" options, equivalent to --with-intl=none * update BUILDING.md with above changes * Checks in tools that generate the deps/icu-small source directory from ICU source * Tools and process for updating ICU documented in tools/icu/README.md Fixes: https://github.com/nodejs/node/issues/3476 PR-URL: https://github.com/nodejs/node/pull/6088 Reviewed-By: James M Snell <jasnell@gmail.com>
2015-11-14build: fix --with-intl=system-icu for x-compileSteven R. Loomis
* add toolset stuff to icu-system.gyp * update docs Fixes: https://github.com/nodejs/node/issues/3801 PR-URL: https://github.com/nodejs/node/pull/3808 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
2015-10-06build: intl: avoid 'duplicate main()' on ICU 56Steven R. Loomis
* Exclude `derb.cpp` as well as `derb.c` from Node builds (file was renamed in ICU 56) ICU 56 renamed derb.c to derb.cpp because of C++ yay. This broke the exclusion of "derb.c" when building tools. Solution is to add derb.c AND derb.cpp to exclusion. We don't build the 'derb' tool, so it's fine to list the excluded source twice. Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> PR-URL: https://github.com/nodejs/node/pull/3066 Fixes: https://github.com/nodejs/node/issues/3065
2015-09-30i18n: add caller to removal list for bidi in ICU55Michael Dawson
For ICU 55 we are currently stripping out bidi and the callers. AIX is more pedantic and identified an additional caller than needed to be stripped out. This PR adds that caller to those stripped out. PR-URL: https://github.com/nodejs/node/pull/3115 Reviewed-By: Steven Loomis <srloomis@us.ibm.com>
2015-09-17build: fix icutrim when building small-icu on BEStewart Addison
Fix a build error that occurs when icutrim is run to cut down the ICU locale set on Big-Endian platforms when building with --with-intl=small-icu (which is done by the "make binary" target). This fixes the binary build on POWER platforms. Fixes: https://github.com/nodejs/node/issues/2601 PR-URL: https://github.com/nodejs/node/pull/2602 Reviewed-By: Steven Loomis <srloomis@us.ibm.com>
2015-08-14build: work around VS2015 issue in ICU <56Steven R. Loomis
The particular ufile.c is from http://bugs.icu-project.org/trac/changeset/37704 and should be OK for ICU 54 and 55. Also, adds general mechanism for floating patches on top of ICU. Fixes: https://github.com/nodejs/node/issues/2279 PR-URL: https://github.com/nodejs/node/pull/2283 Reviewed-By: João Reis <reis@janeasystems.com>
2015-08-13build: Intl: bump ICU4C from 54 to 55Steven R. Loomis
node was using ICU4C 54 ( released 2014-oct-06 ) * Bump to ICU4C 55 ( released 2015-apr-08) * Timezone fixes, translation fixes, bug/performance fixes. * Speed improvements in date formatting * ICU4C 55 changelog: http://site.icu-project.org/download/55 * CLDR 27 changelog: http://cldr.unicode.org/index/downloads/cldr-27 * Retarget the file exclusions from ICU4C 54 to ICU4C 55 * (improves on-disk footprint on some platforms) Reviewed-By: João Reis <reis@janeasystems.com> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Fixes: https://github.com/nodejs/node/issues/2292 PR-URL: https://github.com/nodejs/node/pull/2293
2015-01-02build: i18n: add icu config optionsSteven R. Loomis
Make "--with-intl=none" the default and add "intl-none" option to vcbuild.bat. If icu data is missing print a warning unless either --download=all or --download=icu is set. If set then automatically download, verify (MD5) and unpack the ICU data if not already available. There's a "list" of URLs being used, but right now only the first is picked up. The logic works something like this: * If there is no directory deps/icu, * If no zip file (currently icu4c-54_1-src.zip), * Download zip file (icu-project.org -> sf.net) * Verify the MD5 sum of the zipfile * If bad, print error and exit * Unpack the zipfile into deps/icu * If deps/icu now exists, use it, else fail with help text Add the configuration option "--with-icu-source=..." Usage: * --with-icu-source=/path/to/my/other/icu * --with-icu-source=/path/to/icu54.zip * --with-icu-source=/path/to/icu54.tgz * --with-icu-source=http://example.com/icu54.tar.bz2 Add the configuration option "--with-icu-locals=...". Allows choosing which locales are used in the "small-icu" case. Example: configure --with-intl=small-icu --with-icu-locales=tlh,grc,nl (Also note that as of this writing, neither Klingon nor Ancient Greek are in upstream CLDR data. Serving suggestion only.) Don't use hard coded ../../out paths on windows. This was suggested by @misterdjules as it causes test failures. With this fix, "out" is no longer created on windows and the following can run properly: python tools/test.py simple Reduce space by about 1MB with ICU 54 (over without this patch). Also trims a few other source files, but only conditional on the exact ICU version used. This is to future-proof - a file that is unneeded now may be needed in future ICUs. Also: * Update distclean to remove icu related files * Refactor some code into tools/configure.d/nodedownload.py * Update docs * Add test PR-URL: https://github.com/joyent/node/pull/8719 Fixes: https://github.com/joyent/node/issues/7676#issuecomment-64704230 [trev.norris@gmail.com small change to test's whitespace and logic] Signed-off-by: Trevor Norris <trev.norris@gmail.com>
2014-11-13build: i18n: support little-endian machinesSteven Loomis
Note that this may not affect anything until powerpc support lands in v8. Related: https://github.com/srl295/node/issues/7 Related: https://github.com/srl295/node/commit/ba8ab91bc4762ade646474276c4a4b8cdaf83115 PR-URL: https://github.com/joyent/node/pull/8712 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-11build: i18n: fix icu toolset dependenciesSteven R. Loomis
So what I did here is to make the icutools library actually contain the entire ICU dependencies needed for host-side tools. Sadly, this will build ICU twice, but avoids conflicts between host and target side. This all seems like a gyp bug of some sort, but without docs for toolsets, who’s to say? I removed the icuio library as a separate target, because it was only used by the host-side tools. PR-URL: https://github.com/joyent/node/pull/8681 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-11-11build: i18n: fix build on OSXSteven R. Loomis
Fix config option that doesn't work with OSX. Fixes: https://github.com/joyent/node/issues/8521 PR-URL: https://github.com/joyent/node/pull/8602 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-07build: i18n: py27 -> py26 dependencySteven R. Loomis
Move from argparse to optparse for dependency management. Fixes: https://github.com/joyent/node/pull/7719#issuecomment-56868172 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-07build: i18n: move noisy variables to separate gypiSteven R. Loomis
Fixes: https://github.com/joyent/node/issues/7676#issuecomment-57535890 Reviewed-by: Trevor Norris <trev.norris@gmail.com>
2014-10-01build, i18n: improve Intl build, add "--with-intl"Steven R. Loomis
The two main goals of this change are: - To make it easier to build the Intl option using ICU (particularly, using a newer ICU than v8/Chromium's version) - To enable a much smaller ICU build with only English support The goal here is to get node.js binaries built this way by default so that the Intl API can be used. Additional data can be added at execution time (see Readme and wiki) More details are at https://github.com/joyent/node/pull/7719 In particular, this change adds the "--with-intl=" configure option to provide more ways of building "Intl": - "full-icu" picks up an ICU from deps/icu - "small-icu" is similar, but builds only English - "system-icu" uses pkg-config to find an installed ICU - "none" does nothing (no Intl) For Windows builds, the "full-icu" or "small-icu" options are added to vcbuild.bat. Note that the existing "--with-icu-path" option is not removed from configure, but may not be used alongside the new option. Wiki changes have already been made on https://github.com/joyent/node/wiki/Installation and a new page created at https://github.com/joyent/node/wiki/Intl (marked as provisional until this change lands.) Summary of changes: * README.md : doc updates * .gitignore : added "deps/icu" as this is the location where ICU is unpacked to. * Makefile : added the tools/icu/* files to cpplint, but excluded a problematic file. * configure : added the "--with-intl" option mentioned above. Calculate at config time the list of ICU source files to use and data packaging options. * node.gyp : add the new files src/node_i18n.cc/.h as well as ICU linkage. * src/node.cc : add call into node::i18n::InitializeICUDirectory(icu_data_dir) as well as new --icu-data-dir option and NODE_ICU_DATA env variable to configure ICU data loading. This loading is only relevant in the "small" configuration. * src/node_i18n.cc : new source file for the above Initialize.. function, to setup ICU as needed. * tools/icu : new directory with some tools needed for this build. * tools/icu/icu-generic.gyp : new .gyp file that builds ICU in some new ways, both on unix/mac and windows. * tools/icu/icu-system.gyp : new .gyp file to build node against a pkg-config detected ICU. * tools/icu/icu_small.json : new config file for the "English-only" small build. * tools/icu/icutrim.py : new tool for trimming down ICU data. Reads the above .json file. * tools/icu/iculslocs.cc : new tool for repairing ICU data manifests after trim operation. * tools/icu/no-op.cc : dummy file to force .gyp into using a C++ linker. * vcbuild.bat : added small-icu and full-icu options, to call into configure. * Fixed toolset dependencies, see https://github.com/joyent/node/pull/7719#issuecomment-54641687 Note that because of a bug in gyp {CC,CXX}_host must also be set. Otherwise gcc/g++ will be used by default for part of the build. Reviewed-by: Trevor Norris <trev.norris@gmail.com> Reviewed-by: Fedor Indutny <fedor@indutny.com>