electron/docs/development/build-instructions-osx.md

92 lines
1.8 KiB
Markdown
Raw Normal View History

2016-06-18 13:26:26 +00:00
# Build Instructions (macOS)
2015-08-31 05:30:23 +00:00
2016-06-18 13:26:26 +00:00
Follow the guidelines below for building Electron on macOS.
2013-09-09 07:35:57 +00:00
2013-08-14 22:43:35 +00:00
## Prerequisites
2016-06-18 13:26:26 +00:00
* macOS >= 10.8
2014-05-09 02:04:13 +00:00
* [Xcode](https://developer.apple.com/technologies/tools/) >= 5.1
2015-08-31 05:30:23 +00:00
* [node.js](http://nodejs.org) (external)
2013-08-14 22:43:35 +00:00
2015-08-31 05:30:23 +00:00
If you are using the Python downloaded by Homebrew, you also need to install
the following Python modules:
* [pyobjc](https://pythonhosted.org/pyobjc/install.html)
2015-08-31 05:30:23 +00:00
## Getting the Code
2013-08-14 22:43:35 +00:00
```bash
2016-10-06 04:31:51 +00:00
$ git clone https://github.com/electron/electron
2013-08-14 22:43:35 +00:00
```
## Bootstrapping
The bootstrap script will download all necessary build dependencies and create
the build project files. Notice that we're using [ninja](https://ninja-build.org/)
to build Electron so there is no Xcode project generated.
2013-08-14 22:43:35 +00:00
```bash
2015-04-16 03:31:12 +00:00
$ cd electron
2014-12-08 17:07:29 +00:00
$ ./script/bootstrap.py -v
2013-08-14 22:43:35 +00:00
```
## Building
Build both `Release` and `Debug` targets:
```bash
$ ./script/build.py
```
You can also only build the `Debug` target:
```bash
2015-04-10 13:56:02 +00:00
$ ./script/build.py -c D
2013-08-14 22:43:35 +00:00
```
2015-04-16 03:31:12 +00:00
After building is done, you can find `Electron.app` under `out/D`.
2013-08-14 22:43:35 +00:00
2015-08-31 05:30:23 +00:00
## 32bit Support
2016-06-18 13:26:26 +00:00
Electron can only be built for a 64bit target on macOS and there is no plan to
2016-08-18 15:19:06 +00:00
support 32bit macOS in the future.
## Cleaning
To clean the build files:
```bash
$ npm run clean
```
2013-08-14 22:43:35 +00:00
## Tests
2015-08-31 05:30:23 +00:00
Test your changes conform to the project coding style using:
```bash
2016-10-06 04:31:51 +00:00
$ npm run lint
```
Test functionality using:
2013-08-14 22:43:35 +00:00
```bash
2016-10-06 04:31:51 +00:00
$ npm test
```
You can make the test suite run faster by isolating the specific test or block
you're currently working on using Mocha's
[exclusive tests](https://mochajs.org/#exclusive-tests) feature:
```js
describe.only('some feature', function () {
// ... only tests in this block will be run
})
```
Alternatively, you can use mocha's `grep` option to only run tests matching the
given regular expression pattern:
```sh
npm test -- --grep child_process
2013-08-14 22:43:35 +00:00
```