-
Notifications
You must be signed in to change notification settings - Fork 1
Building node webkit
Our compilation will follow Chromium
's standard, by using gclient
and gyp
, be sure to read following documentations before you continue, they contained required knowledge to build node-webkit
.
-
Get the Code - the usage of
gclient
- UsingNewGit - steps of syncing code
And choose the instructions for your platform, they contained important building conventions.
- Get the Chromium depot_tools.
- Setup building enviroment, see Build Instructions above.
node-webkit
is now a part of our custom Chromium
, that means the way we get node-webkit
is mostly the same with Chromium
, following steps are indeed modified from the Get the Code.
First find a place to put our code, it will take up about 14G disk space after compilation. Assume you store code under node-webkit
folder, our final directory architecture will be like:
node-webkit/
|-- .gclient
`-- src/
|-- many-stuff
|-- ...
`-- content
|-- ...
`-- nw
Then create the .gclient
file under node-webkit
, its content should be:
solutions = [
{ "name" : "src",
"url" : "https://github.com/zcbenz/chromium.git@origin/node",
"deps_file" : ".DEPS.git",
"managed" : True,
"custom_deps" : {
"src/third_party/WebKit/LayoutTests": None,
"src/chrome_frame/tools/test/reference_build/chrome": None,
"src/chrome_frame/tools/test/reference_build/chrome_win": None,
"src/chrome/tools/test/reference_build/chrome": None,
"src/chrome/tools/test/reference_build/chrome_linux": None,
"src/chrome/tools/test/reference_build/chrome_mac": None,
"src/chrome/tools/test/reference_build/chrome_win": None,
},
"safesync_url": "",
},
]
Finally sync code under node-webkit
directory (where .gclient
resides), it would spend a few hours depending on your network condition:
gclient sync
Note: if you're on Linux and you get any dependency errors during gclient sync
(like 'nss' or 'gtk+-2.0'), run ./src/build/install-build-deps.sh
, then re-run gclient sync:
cd /path/to/node-webkit
# Do this to boot strap dependencies on Linux:
gclient sync --nohooks
./src/build/install-build-deps.sh
gclient sync
If you encountered other problems, see UsingNewGit.
If you're building node-webkit on Windows, you should copy DirectX SDK files into /path/to/node-webkit/src/third_party/directxsdk/files
:
mkdir -p /path/to/node-webkit/src/third_party/directxsdk/files
cp -r /c/Program\ Files\ \(x86\)/Microsoft\ DirectX\ SDK\ \(June\ 2010\)/* /path/to/node-webkit/src/third_party/directxsdk/files/
This step is necessary to get some DirectX dlls files extracted, and we mentioned it here because this is not documented in Chromium's site.
After the gclient sync
, project files should have be prepared. If not, you should manually run:
./build/gyp_chromium
Then you can just compile the nw
target (and don't forget to build with Release
mode):
- Windows - Open the Visual Studio solution file and build project
nw
undercontent
. - Mac OS X - Use
ninja
as described bellow, XCode will die buildingnode-webkit
:(. - Linux - Run
make -j4 nw BUILDTYPE=Release
from the Chromiumsrc
directory.
Alternately, you can use ninja
to build node-webkit
, see NinjaBuild. This method is also recommended since it's very fast and easy to use. A short summary of using ninja
is:
GYP_GENERATORS='ninja' ./build/gyp_chromium
ninja -C out/Release nw -j4
You can use gclient to update everything automatically:
cd /path-to-node-webkit
gclient sync