node.jsorjxcoreis installed- For
WindowsVisual Studio 2013 or later versions - For
OSXXCode - For
Linux/BSDgcc/gcc++ and relevant developer packages gitandpython 2.7has to be reachable from the path- Download and install Android SDK and NDK for Android builds
node build.js --help
--help : display available options
:
--cid_node=[commit-id] : Checkout a particular commit from node/node-chakracore repo
--cid_jxcore=[commit-id] : Checkout a particular commit from jxcore repo
--url_node=[node repo url] : URL for node.js Github repository
--url_jxcore=[jx repo url] : URL for jxcore Github repository
--dest-cpu=[cpu_type] : set target cpu (arm, ia32, x86, x64). i.e. --dest-cpu=ia32
--ndk-path=[path] : path to android ndk. This option is required for platform=android
--platform=[target] : set target platform. by default 'desktop'. (android, desktop, ios, windows-arm)
--force-target=[jxcore or nodejs] : Force target framework regardless from the platform
--release : Build release binary. By default Debug
--reset : Clone nodejs and jxcore repos once again
--test : run tests after build
When you call node build.js or jx build.js for the first time, TBD will clone both nodejs and jxcore
repositories locally. If you want to target a particular commit or branch from either of these repositories,
use one or both of the options below;
node build.js --cid_node=xxxxxxxx
or
node build.js --cid_node=xxxxxxx --cid_jxcore=yyyyy
By default, TBD clones node-chakracore on Windows, and nodejs/node for other platforms
You may set the target repository url (it has to be a git repository) using command line below;
node build.js --url_node=https://github.com/custom/node_repo
Same applies for jxcore using --url_jxcore argument.
Once the repositories are downloaded to your local, build.js won't be downloading them again.
Even if you target another repository url it won't be changing the ones available on local.
In order to force downloading the repositories, you should use --reset argument.
TBD decides which node distro will be used based on the target platform. --platform
In case you are on desktop (hence targeting desktop), you may force either nodejs or jxcore
by using --force-target=jxcore or nodejs similarly. (also see --url_node and --url_jxcore)
Let's say you are on Windows.
> node build.js
Command above will be patching node.js ChakraCore with necessary wrapper interface and build as a dll
You may find resulting dll and header files under the out/node_desktop_ia32/ folder.
If you were on Linux or OSX, command above would patch nodejs v8. However, output folder would be the same.
Unless otherwise is specified, TBD compiles against ia32 target. You may use --dest-cpu=x64 argument for x64
For android, ios and windows-arm targets, setting -dest-cpu has no effect.
In order to start testing right after build, use below command line;
> node build.js --test
Forcing jxcore target is possible on desktop too.
> node build.js --force-target=jxcore --test
The command above will patch and build jxcore binaries and test them.
Finally, jxcore binaries will be available under out/jxcore_desktop_ia32/