2013-09-09 07:35:57 +00:00
|
|
|
# Build instructions (Windows)
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
## Prerequisites
|
|
|
|
|
2014-11-15 03:14:27 +00:00
|
|
|
* Windows 7 / Server 2008 R2 or higher
|
2014-11-15 03:21:04 +00:00
|
|
|
* Visual Studio 2013 - [download VS 2013 Community Edition for
|
2015-08-14 17:25:18 +00:00
|
|
|
free](https://www.visualstudio.com/downloads/download-visual-studio-vs)
|
2013-08-14 22:43:35 +00:00
|
|
|
* [Python 2.7](http://www.python.org/download/releases/2.7/)
|
2015-04-16 06:50:46 +00:00
|
|
|
* [Node.js](http://nodejs.org/download/)
|
2013-08-14 22:43:35 +00:00
|
|
|
* [git](http://git-scm.com)
|
|
|
|
|
2014-11-15 03:21:12 +00:00
|
|
|
If you don't have a Windows installation at the moment,
|
|
|
|
[modern.ie](https://www.modern.ie/en-us/virtualization-tools#downloads) has
|
2015-04-08 17:16:10 +00:00
|
|
|
timebombed versions of Windows that you can use to build Electron.
|
2014-11-15 03:21:12 +00:00
|
|
|
|
2015-04-16 03:31:12 +00:00
|
|
|
The building of Electron is done entirely with command-line scripts, so you
|
|
|
|
can use any editor you like to develop Electron, but it also means you can
|
2013-08-29 14:37:51 +00:00
|
|
|
not use Visual Studio for the development. Support of building with Visual
|
2014-05-10 02:11:17 +00:00
|
|
|
Studio will come in the future.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
2013-08-29 14:37:51 +00:00
|
|
|
**Note:** Even though Visual Studio is not used for building, it's still
|
2015-06-30 12:00:20 +00:00
|
|
|
**required** because we need the build toolchains it provides.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
2015-08-14 17:25:18 +00:00
|
|
|
**Note:** Visual Studio 2015 will not work. Please make sure to get MSVS **2013**.
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
## Getting the code
|
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
2015-04-16 03:31:12 +00:00
|
|
|
git clone https://github.com/atom/electron.git
|
2013-08-14 22:43:35 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## Bootstrapping
|
|
|
|
|
2013-08-29 14:37:51 +00:00
|
|
|
The bootstrap script will download all necessary build dependencies and create
|
2015-04-16 03:31:12 +00:00
|
|
|
build project files. Notice that we're using `ninja` to build Electron so
|
2013-08-29 14:37:51 +00:00
|
|
|
there is no Visual Studio project generated.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
2015-04-16 03:31:12 +00:00
|
|
|
cd electron
|
2014-12-07 15:47:23 +00:00
|
|
|
python script\bootstrap.py -v
|
2013-08-14 22:43:35 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
Build both Release and Debug targets:
|
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
2014-12-07 15:47:23 +00:00
|
|
|
python script\build.py
|
2013-08-14 22:43:35 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
You can also only build the Debug target:
|
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
2015-04-10 13:56:02 +00:00
|
|
|
python script\build.py -c D
|
2013-08-14 22:43:35 +00:00
|
|
|
```
|
|
|
|
|
2015-08-25 20:28:41 +00:00
|
|
|
After building is done, you can find `electron.exe` under `out\D` (debug
|
|
|
|
target) or under `out\R` (release target).
|
2013-08-14 22:43:35 +00:00
|
|
|
|
2015-04-16 06:50:46 +00:00
|
|
|
## 64bit build
|
2014-05-05 01:48:44 +00:00
|
|
|
|
2015-04-16 06:50:46 +00:00
|
|
|
To build for the 64bit target, you need to pass `--target_arch=x64` when running
|
|
|
|
the bootstrap script:
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
python script\bootstrap.py -v --target_arch=x64
|
|
|
|
```
|
|
|
|
|
|
|
|
The other building steps are exactly the same.
|
2014-05-05 01:48:44 +00:00
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
## Tests
|
|
|
|
|
2015-08-08 20:25:27 +00:00
|
|
|
Test your changes confirm to the project coding style using:
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
python script\cpplint.py
|
|
|
|
```
|
|
|
|
|
|
|
|
Test functionality using:
|
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
|
|
|
python script\test.py
|
2013-08-29 14:37:51 +00:00
|
|
|
```
|
2014-04-29 03:07:17 +00:00
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
2014-05-18 11:47:27 +00:00
|
|
|
### Command xxxx not found
|
|
|
|
|
|
|
|
If you encountered an error like `Command xxxx not found`, you may try to use
|
2014-06-27 03:08:00 +00:00
|
|
|
the `VS2012 Command Prompt` console to execute the build scripts.
|
2014-05-18 11:47:27 +00:00
|
|
|
|
2015-04-04 03:22:50 +00:00
|
|
|
### Fatal internal compiler error: C1001
|
|
|
|
|
|
|
|
Make sure you have the latest Visual Studio update installed.
|
|
|
|
|
2014-04-29 03:07:17 +00:00
|
|
|
### Assertion failed: ((handle))->activecnt >= 0
|
|
|
|
|
2014-11-15 03:15:11 +00:00
|
|
|
If building under Cygwin, you may see `bootstrap.py` failed with following
|
2014-04-29 03:07:17 +00:00
|
|
|
error:
|
|
|
|
|
|
|
|
```
|
|
|
|
Assertion failed: ((handle))->activecnt >= 0, file src\win\pipe.c, line 1430
|
|
|
|
|
|
|
|
Traceback (most recent call last):
|
|
|
|
File "script/bootstrap.py", line 87, in <module>
|
|
|
|
sys.exit(main())
|
|
|
|
File "script/bootstrap.py", line 22, in main
|
|
|
|
update_node_modules('.')
|
|
|
|
File "script/bootstrap.py", line 56, in update_node_modules
|
|
|
|
execute([NPM, 'install'])
|
|
|
|
File "/home/zcbenz/codes/raven/script/lib/util.py", line 118, in execute
|
|
|
|
raise e
|
|
|
|
subprocess.CalledProcessError: Command '['npm.cmd', 'install']' returned non-zero exit status 3
|
|
|
|
```
|
|
|
|
|
2014-11-15 03:15:11 +00:00
|
|
|
This is caused by a bug when using Cygwin python and Win32 node together. The
|
|
|
|
solution is to use the Win32 python to execute the bootstrap script (supposing
|
2014-04-29 03:07:17 +00:00
|
|
|
you have installed python under `C:\Python27`):
|
|
|
|
|
|
|
|
```bash
|
|
|
|
/cygdrive/c/Python27/python.exe script/bootstrap.py
|
|
|
|
```
|
2014-05-15 06:32:34 +00:00
|
|
|
|
2014-06-25 01:11:06 +00:00
|
|
|
### LNK1181: cannot open input file 'kernel32.lib'
|
|
|
|
|
|
|
|
Try reinstalling 32bit node.js.
|
2014-11-14 03:11:56 +00:00
|
|
|
|
|
|
|
### Error: ENOENT, stat 'C:\Users\USERNAME\AppData\Roaming\npm'
|
|
|
|
|
|
|
|
Simply making that directory [should fix the problem](http://stackoverflow.com/a/25095327/102704):
|
|
|
|
|
2014-11-15 03:13:40 +00:00
|
|
|
```powershell
|
|
|
|
mkdir ~\AppData\Roaming\npm
|
2014-11-14 03:11:56 +00:00
|
|
|
```
|
2014-12-30 03:09:36 +00:00
|
|
|
|
|
|
|
### node-gyp is not recognized as an internal or external command
|
|
|
|
|
|
|
|
You may get this error if you are using Git Bash for building, you should use
|
|
|
|
PowerShell or VS2012 Command Prompt instead.
|