-
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
nwundercontent. - Mac OS X - Use
ninjaas described bellow, XCode will die buildingnode-webkit:(. - Linux - Run
make -j4 nw BUILDTYPE=Releasefrom the Chromiumsrcdirectory.
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