0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/tools
Steven R. Loomis ac2857b12c build, i18n: improve Intl build, add "--with-intl"
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>
2014-10-01 12:16:51 -07:00
..
closure_linter
doc doc: fix optional parameter parsing 2014-09-29 16:32:34 -07:00
gyp gyp: fix build with python 2.6 2014-01-13 22:03:40 -08:00
icu build, i18n: improve Intl build, add "--with-intl" 2014-10-01 12:16:51 -07:00
mdb build: embed the mdb_v8.so into the binary 2013-08-05 14:19:29 -07:00
msvs build: run wix tool chain out of process 2014-06-13 14:39:53 -07:00
osx-pkg.pmdoc
pkgsrc build: add pkgsrc rule 2013-06-06 15:35:59 -07:00
wrk wrk: compile on sunos 2014-02-25 11:28:46 -08:00
build-changelog.sh
certdata.txt tools: check in certdata.txt from mozilla NSS 2013-11-09 23:37:55 +01:00
changelog-head.sh 2012.01.09, Version 0.8.17 (Stable) 2013-01-09 16:55:12 -08:00
check-imports.sh tools: make check-imports.sh work on bsd-likes 2013-07-19 22:56:28 +02:00
cpplint.py cpplint: disallow if one-liners 2013-10-17 00:34:19 +04:00
email-footer.md email-footer: update the binary package links to x86/x64 2012-08-15 18:05:33 -07:00
genv8constants.py Revert "sunos: unbreak build after v8 downgrade" 2013-02-26 07:57:12 +00:00
getnextnodeversion.py tools: Add next/prev version scripts 2013-07-09 15:58:15 -07:00
getnodeisrelease.py Makefile: add a better check to ensure a node "release" 2012-08-09 17:11:41 -07:00
getnodeversion.py
getprevnodeversion.py tools: Add next/prev version scripts 2013-07-09 15:58:15 -07:00
getstability.py tools: script to report [un]stable build 2013-08-21 16:55:27 -07:00
gyp_node.py gyp: update to bebdcea 2013-11-10 15:15:34 -08:00
install.py installer: copy smalloc.h on installation 2014-05-02 22:55:15 +04:00
js2c.py tools: fix js2c macro expansion bug 2013-07-24 21:49:34 +02:00
license2rtf.js
Makefile timers: backport f8193ab 2014-07-31 08:53:24 -07:00
mk-ca-bundle.pl tools: customize mk-ca-bundle.pl 2013-11-09 23:37:16 +01:00
node-release-post-build.sh Now working on 0.10.31 2014-07-31 11:12:08 -07:00
osx-codesign.sh
osx-pkg-postinstall.sh
osx-productsign.sh
run-valgrind.py
specialize_node_d.py gyp: specialize node.d for freebsd 2014-02-21 00:46:26 +04:00
test.py test: move debugger repl into own section 2014-01-20 09:00:13 -08:00
updateAuthors.awk
upgrade-npm.sh deps: upgrade npm to 2.0.0 2014-09-24 17:15:10 -07:00
utils.py tools: fix test.py after v8 upgrade 2013-04-29 23:08:57 +02:00