2011-08-24 08:14:56 +02:00
|
|
|
@echo off
|
|
|
|
|
|
|
|
cd %~dp0
|
|
|
|
|
|
|
|
if /i "%1"=="help" goto help
|
|
|
|
if /i "%1"=="--help" goto help
|
|
|
|
if /i "%1"=="-help" goto help
|
|
|
|
if /i "%1"=="/help" goto help
|
|
|
|
if /i "%1"=="?" goto help
|
|
|
|
if /i "%1"=="-?" goto help
|
|
|
|
if /i "%1"=="--?" goto help
|
|
|
|
if /i "%1"=="/?" goto help
|
|
|
|
|
|
|
|
@rem Process arguments.
|
2012-02-23 13:25:20 +01:00
|
|
|
set config=Release
|
2012-06-01 04:44:10 +02:00
|
|
|
set msiplatform=x86
|
2011-08-24 08:14:56 +02:00
|
|
|
set target=Build
|
2012-02-07 07:53:39 +01:00
|
|
|
set target_arch=ia32
|
2012-03-15 23:17:25 +01:00
|
|
|
set debug_arg=
|
2015-01-24 01:06:07 +01:00
|
|
|
set snapshot_arg=
|
2011-08-24 08:14:56 +02:00
|
|
|
set noprojgen=
|
2011-08-27 00:04:47 +02:00
|
|
|
set nobuild=
|
2011-11-23 03:17:12 +01:00
|
|
|
set nosign=
|
2015-05-08 20:56:13 +02:00
|
|
|
set nosnapshot=
|
2011-08-27 00:04:47 +02:00
|
|
|
set test_args=
|
2011-09-14 23:51:49 +02:00
|
|
|
set msi=
|
2012-04-04 18:06:00 +02:00
|
|
|
set licensertf=
|
2012-03-08 20:39:39 +01:00
|
|
|
set jslint=
|
2012-06-14 00:55:29 +02:00
|
|
|
set buildnodeweak=
|
2012-06-12 01:23:17 +02:00
|
|
|
set noetw=
|
|
|
|
set noetw_arg=
|
|
|
|
set noetw_msi_arg=
|
2012-11-21 00:27:22 +01:00
|
|
|
set noperfctr=
|
|
|
|
set noperfctr_arg=
|
|
|
|
set noperfctr_msi_arg=
|
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-09-05 07:03:24 +02:00
|
|
|
set i18n_arg=
|
build: i18n: add icu config options
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-13 02:13:14 +01:00
|
|
|
set download_arg=
|
2011-08-24 08:14:56 +02:00
|
|
|
|
|
|
|
:next-arg
|
|
|
|
if "%1"=="" goto args-done
|
2012-02-12 21:04:03 +01:00
|
|
|
if /i "%1"=="debug" set config=Debug&goto arg-ok
|
|
|
|
if /i "%1"=="release" set config=Release&goto arg-ok
|
|
|
|
if /i "%1"=="clean" set target=Clean&goto arg-ok
|
|
|
|
if /i "%1"=="ia32" set target_arch=ia32&goto arg-ok
|
|
|
|
if /i "%1"=="x86" set target_arch=ia32&goto arg-ok
|
|
|
|
if /i "%1"=="x64" set target_arch=x64&goto arg-ok
|
|
|
|
if /i "%1"=="noprojgen" set noprojgen=1&goto arg-ok
|
|
|
|
if /i "%1"=="nobuild" set nobuild=1&goto arg-ok
|
|
|
|
if /i "%1"=="nosign" set nosign=1&goto arg-ok
|
2015-05-08 20:56:13 +02:00
|
|
|
if /i "%1"=="nosnapshot" set nosnapshot=1&goto arg-ok
|
2012-06-12 01:23:17 +02:00
|
|
|
if /i "%1"=="noetw" set noetw=1&goto arg-ok
|
2012-11-21 00:27:22 +01:00
|
|
|
if /i "%1"=="noperfctr" set noperfctr=1&goto arg-ok
|
2012-04-04 18:06:00 +02:00
|
|
|
if /i "%1"=="licensertf" set licensertf=1&goto arg-ok
|
2015-02-28 02:42:49 +01:00
|
|
|
if /i "%1"=="test" set test_args=%test_args% sequential parallel message -J&set jslint=1&goto arg-ok
|
2015-04-28 07:01:20 +02:00
|
|
|
if /i "%1"=="test-ci" set test_args=%test_args% -p tap --logfile test.tap message sequential parallel&set jslint=1&goto arg-ok
|
2015-02-28 02:42:49 +01:00
|
|
|
if /i "%1"=="test-simple" set test_args=%test_args% sequential parallel -J&goto arg-ok
|
|
|
|
if /i "%1"=="test-message" set test_args=%test_args% message&goto arg-ok
|
|
|
|
if /i "%1"=="test-gc" set test_args=%test_args% gc&set buildnodeweak=1&goto arg-ok
|
|
|
|
if /i "%1"=="test-internet" set test_args=%test_args% internet&goto arg-ok
|
|
|
|
if /i "%1"=="test-pummel" set test_args=%test_args% pummel&goto arg-ok
|
2015-03-11 20:01:31 +01:00
|
|
|
if /i "%1"=="test-all" set test_args=%test_args% sequential parallel message gc internet pummel&set buildnodeweak=1&set jslint=1&goto arg-ok
|
2012-03-08 20:39:39 +01:00
|
|
|
if /i "%1"=="jslint" set jslint=1&goto arg-ok
|
2015-02-28 02:42:49 +01:00
|
|
|
if /i "%1"=="msi" set msi=1&set licensertf=1&goto arg-ok
|
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-09-05 07:03:24 +02:00
|
|
|
if /i "%1"=="small-icu" set i18n_arg=%1&goto arg-ok
|
|
|
|
if /i "%1"=="full-icu" set i18n_arg=%1&goto arg-ok
|
build: i18n: add icu config options
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-13 02:13:14 +01:00
|
|
|
if /i "%1"=="intl-none" set i18n_arg=%1&goto arg-ok
|
|
|
|
if /i "%1"=="download-all" set download_arg="--download=all"&goto arg-ok
|
2011-11-17 00:10:14 +01:00
|
|
|
|
2012-02-12 21:04:03 +01:00
|
|
|
echo Warning: ignoring invalid command line option `%1`.
|
2011-11-17 00:10:14 +01:00
|
|
|
|
2012-06-14 00:55:45 +02:00
|
|
|
:arg-ok
|
2011-08-24 08:14:56 +02:00
|
|
|
:arg-ok
|
|
|
|
shift
|
|
|
|
goto next-arg
|
2012-06-14 00:55:29 +02:00
|
|
|
|
2011-08-24 08:14:56 +02:00
|
|
|
:args-done
|
2012-03-15 23:17:25 +01:00
|
|
|
if "%config%"=="Debug" set debug_arg=--debug
|
2012-06-01 04:44:10 +02:00
|
|
|
if "%target_arch%"=="x64" set msiplatform=x64
|
2015-05-08 20:56:13 +02:00
|
|
|
if defined nosnapshot set snapshot_arg=--without-snapshot
|
2012-06-12 01:23:17 +02:00
|
|
|
if defined noetw set noetw_arg=--without-etw& set noetw_msi_arg=/p:NoETW=1
|
2012-11-21 00:27:22 +01:00
|
|
|
if defined noperfctr set noperfctr_arg=--without-perfctr& set noperfctr_msi_arg=/p:NoPerfCtr=1
|
2011-08-24 08:14:56 +02:00
|
|
|
|
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-09-05 07:03:24 +02:00
|
|
|
if "%i18n_arg%"=="full-icu" set i18n_arg=--with-intl=full-icu
|
|
|
|
if "%i18n_arg%"=="small-icu" set i18n_arg=--with-intl=small-icu
|
build: i18n: add icu config options
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-13 02:13:14 +01:00
|
|
|
if "%i18n_arg%"=="intl-none" set i18n_arg=--with-intl=none
|
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-09-05 07:03:24 +02:00
|
|
|
|
2011-08-27 00:04:47 +02:00
|
|
|
:project-gen
|
2011-08-24 08:14:56 +02:00
|
|
|
@rem Skip project generation if requested.
|
|
|
|
if defined noprojgen goto msbuild
|
|
|
|
|
2013-03-05 20:05:50 +01:00
|
|
|
if defined NIGHTLY set TAG=nightly-%NIGHTLY%
|
|
|
|
|
2011-08-24 08:14:56 +02:00
|
|
|
@rem Generate the VS project.
|
2013-01-03 23:36:04 +01:00
|
|
|
SETLOCAL
|
|
|
|
if defined VS100COMNTOOLS call "%VS100COMNTOOLS%\VCVarsQueryRegistry.bat"
|
2015-04-20 10:48:51 +02:00
|
|
|
python configure %download_arg% %i18n_arg% %debug_arg% %snapshot_arg% %noetw_arg% %noperfctr_arg% --dest-cpu=%target_arch% --tag=%TAG%
|
2013-01-03 23:36:04 +01:00
|
|
|
if errorlevel 1 goto create-msvs-files-failed
|
|
|
|
if not exist node.sln goto create-msvs-files-failed
|
|
|
|
echo Project files generated.
|
|
|
|
ENDLOCAL
|
2011-08-24 08:14:56 +02:00
|
|
|
|
|
|
|
:msbuild
|
2011-08-27 00:04:47 +02:00
|
|
|
@rem Skip project generation if requested.
|
2012-04-04 18:06:00 +02:00
|
|
|
if defined nobuild goto sign
|
2011-08-27 00:04:47 +02:00
|
|
|
|
2013-12-27 20:39:55 +01:00
|
|
|
@rem Look for Visual Studio 2013
|
2014-12-12 18:28:20 +01:00
|
|
|
if not defined VS120COMNTOOLS goto msbuild-not-found
|
|
|
|
if not exist "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat" goto msbuild-not-found
|
2014-10-10 15:14:47 +02:00
|
|
|
if "%VCVARS_VER%" NEQ "120" (
|
|
|
|
call "%VS120COMNTOOLS%\..\..\vc\vcvarsall.bat"
|
|
|
|
SET VCVARS_VER=120
|
|
|
|
)
|
2013-12-27 20:39:55 +01:00
|
|
|
if not defined VCINSTALLDIR goto msbuild-not-found
|
|
|
|
set GYP_MSVS_VERSION=2013
|
|
|
|
goto msbuild-found
|
|
|
|
|
2011-09-05 00:35:42 +02:00
|
|
|
:msbuild-not-found
|
|
|
|
echo Build skipped. To build, this file needs to run from VS cmd prompt.
|
|
|
|
goto run
|
|
|
|
|
|
|
|
:msbuild-found
|
2011-08-24 08:14:56 +02:00
|
|
|
@rem Build the sln with msbuild.
|
2011-12-28 23:56:53 +01:00
|
|
|
msbuild node.sln /m /t:%target% /p:Configuration=%config% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
|
2011-08-24 08:14:56 +02:00
|
|
|
if errorlevel 1 goto exit
|
2011-08-27 00:04:47 +02:00
|
|
|
|
2012-04-04 18:06:00 +02:00
|
|
|
:sign
|
|
|
|
@rem Skip signing if the `nosign` option was specified.
|
|
|
|
if defined nosign goto licensertf
|
|
|
|
|
2015-01-11 06:49:45 +01:00
|
|
|
signtool sign /a /d "io.js" /t http://timestamp.globalsign.com/scripts/timestamp.dll Release\iojs.exe
|
2014-03-26 06:26:17 +01:00
|
|
|
if errorlevel 1 echo Failed to sign exe&goto exit
|
2011-11-23 03:17:12 +01:00
|
|
|
|
2012-04-04 18:06:00 +02:00
|
|
|
:licensertf
|
|
|
|
@rem Skip license.rtf generation if not requested.
|
|
|
|
if not defined licensertf goto msi
|
|
|
|
|
2015-01-08 16:10:36 +01:00
|
|
|
%config%\iojs tools\license2rtf.js < LICENSE > %config%\license.rtf
|
2012-04-04 18:06:00 +02:00
|
|
|
if errorlevel 1 echo Failed to generate license.rtf&goto exit
|
|
|
|
|
2011-09-14 23:51:49 +02:00
|
|
|
:msi
|
|
|
|
@rem Skip msi generation if not requested
|
|
|
|
if not defined msi goto run
|
2013-03-01 21:03:44 +01:00
|
|
|
call :getnodeversion
|
2013-03-01 01:56:37 +01:00
|
|
|
|
|
|
|
if not defined NIGHTLY goto msibuild
|
2013-03-05 20:05:50 +01:00
|
|
|
set NODE_VERSION=%NODE_VERSION%.%NIGHTLY%
|
2013-03-01 01:56:37 +01:00
|
|
|
|
|
|
|
:msibuild
|
2015-01-11 06:49:45 +01:00
|
|
|
echo Building iojs-%NODE_VERSION%
|
2012-11-21 00:27:22 +01:00
|
|
|
msbuild "%~dp0tools\msvs\msi\nodemsi.sln" /m /t:Clean,Build /p:Configuration=%config% /p:Platform=%msiplatform% /p:NodeVersion=%NODE_VERSION% %noetw_msi_arg% %noperfctr_msi_arg% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
|
2011-09-14 23:51:49 +02:00
|
|
|
if errorlevel 1 goto exit
|
|
|
|
|
2011-11-23 03:17:12 +01:00
|
|
|
if defined nosign goto run
|
2015-01-11 06:49:45 +01:00
|
|
|
signtool sign /a /d "io.js" /t http://timestamp.globalsign.com/scripts/timestamp.dll Release\iojs-v%NODE_VERSION%-%msiplatform%.msi
|
2014-03-26 06:26:17 +01:00
|
|
|
if errorlevel 1 echo Failed to sign msi&goto exit
|
2011-11-23 03:17:12 +01:00
|
|
|
|
2011-08-27 00:04:47 +02:00
|
|
|
:run
|
|
|
|
@rem Run tests if requested.
|
|
|
|
|
2012-06-14 00:55:29 +02:00
|
|
|
:build-node-weak
|
|
|
|
@rem Build node-weak if required
|
|
|
|
if "%buildnodeweak%"=="" goto run-tests
|
2015-02-28 02:42:49 +01:00
|
|
|
"%config%\iojs" deps\npm\node_modules\node-gyp\bin\node-gyp rebuild --directory="%~dp0test\gc\node_modules\weak" --nodedir="%~dp0."
|
2012-06-14 00:55:29 +02:00
|
|
|
if errorlevel 1 goto build-node-weak-failed
|
|
|
|
goto run-tests
|
|
|
|
|
|
|
|
:build-node-weak-failed
|
|
|
|
echo Failed to build node-weak.
|
|
|
|
goto exit
|
|
|
|
|
|
|
|
:run-tests
|
2015-02-28 02:42:49 +01:00
|
|
|
if "%test_args%"=="" goto jslint
|
|
|
|
if "%config%"=="Debug" set test_args=--mode=debug %test_args%
|
|
|
|
if "%config%"=="Release" set test_args=--mode=release %test_args%
|
2015-03-19 02:01:45 +01:00
|
|
|
echo running 'cctest'
|
|
|
|
"%config%\cctest"
|
2011-08-27 00:04:47 +02:00
|
|
|
echo running 'python tools/test.py %test_args%'
|
2015-04-20 10:48:51 +02:00
|
|
|
python tools/test.py %test_args%
|
2015-02-28 02:42:49 +01:00
|
|
|
goto jslint
|
2011-11-11 21:38:55 +01:00
|
|
|
|
2012-03-08 20:39:39 +01:00
|
|
|
:jslint
|
2015-02-28 02:42:49 +01:00
|
|
|
if not defined jslint goto exit
|
2012-03-08 20:39:39 +01:00
|
|
|
echo running jslint
|
2015-05-12 11:33:02 +02:00
|
|
|
%config%\iojs tools/eslint/bin/eslint.js src lib --reset --quiet
|
2012-03-08 20:39:39 +01:00
|
|
|
goto exit
|
|
|
|
|
2015-02-28 02:42:49 +01:00
|
|
|
:create-msvs-files-failed
|
|
|
|
echo Failed to create vc project files.
|
|
|
|
goto exit
|
|
|
|
|
2011-08-24 08:14:56 +02:00
|
|
|
:help
|
build: i18n: add icu config options
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-13 02:13:14 +01:00
|
|
|
echo vcbuild.bat [debug/release] [msi] [test-all/test-uv/test-internet/test-pummel/test-simple/test-message] [clean] [noprojgen] [small-icu/full-icu/intl-none] [nobuild] [nosign] [x86/x64] [download-all]
|
2011-08-24 08:14:56 +02:00
|
|
|
echo Examples:
|
2012-02-28 17:09:24 +01:00
|
|
|
echo vcbuild.bat : builds release build
|
|
|
|
echo vcbuild.bat debug : builds debug build
|
2011-09-14 23:51:49 +02:00
|
|
|
echo vcbuild.bat release msi : builds release build and MSI installer package
|
2011-08-27 00:04:47 +02:00
|
|
|
echo vcbuild.bat test : builds debug build and runs tests
|
2011-08-24 08:14:56 +02:00
|
|
|
goto exit
|
|
|
|
|
|
|
|
:exit
|
2013-03-01 21:03:44 +01:00
|
|
|
goto :EOF
|
|
|
|
|
|
|
|
rem ***************
|
|
|
|
rem Subroutines
|
|
|
|
rem ***************
|
|
|
|
|
|
|
|
:getnodeversion
|
|
|
|
set NODE_VERSION=
|
2015-04-20 10:48:51 +02:00
|
|
|
for /F "usebackq tokens=*" %%i in (`python "%~dp0tools\getnodeversion.py"`) do set NODE_VERSION=%%i
|
2015-01-11 06:49:45 +01:00
|
|
|
if not defined NODE_VERSION echo Cannot determine current version of io.js & exit /b 1
|
2013-03-01 21:03:44 +01:00
|
|
|
goto :EOF
|