Skip to content

Commit

Permalink
docs: prefer out/Debug to out/Default in build docs
Browse files Browse the repository at this point in the history
  • Loading branch information
nornagon committed Sep 13, 2018
1 parent 238ea29 commit 9e85bdb
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
42 changes: 21 additions & 21 deletions docs/development/build-instructions-gn.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,36 +79,36 @@ $ cd src
$ export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools
# this next line is needed only if building with sccache
$ export GN_EXTRA_ARGS="${GN_EXTRA_ARGS} cc_wrapper=\"${PWD}/electron/external_binaries/sccache\""
$ gn gen out/Default --args="import(\"//electron/build/args/debug.gn\") $GN_EXTRA_ARGS"
$ gn gen out/Debug --args="import(\"//electron/build/args/debug.gn\") $GN_EXTRA_ARGS"
```

This will generate a build directory `out/Default` under `src/` with
debug build configuration. You can replace `Default` with another name,
This will generate a build directory `out/Debug` under `src/` with
debug build configuration. You can replace `Debug` with another name,
but it should be a subdirectory of `out`.
Also you shouldn't have to run `gn gen` again—if you want to change the
build arguments, you can run `gn args out/Default` to bring up an editor.
build arguments, you can run `gn args out/Debug` to bring up an editor.

To see the list of available build configuration options, run `gn args
out/Default --list`.
out/Debug --list`.

**For generating Debug (aka "component" or "shared") build config of
Electron:**

```sh
$ gn gen out/Default --args="import(\"//electron/build/args/debug.gn\") $GN_EXTRA_ARGS"
$ gn gen out/Debug --args="import(\"//electron/build/args/debug.gn\") $GN_EXTRA_ARGS"
```

**For generating Release (aka "non-component" or "static") build config of
Electron:**

```sh
$ gn gen out/Default --args="import(\"//electron/build/args/release.gn\") $GN_EXTRA_ARGS"
$ gn gen out/Debug --args="import(\"//electron/build/args/release.gn\") $GN_EXTRA_ARGS"
```

**To build, run `ninja` with the `electron:electron_app` target:**
**To build, run `ninja` with the `electron` target:**

```sh
$ ninja -C out/Default electron:electron_app
$ ninja -C out/Debug electron
# This will also take a while and probably heat up your lap.
```

Expand All @@ -117,19 +117,19 @@ This will build all of what was previously 'libchromiumcontent' (i.e. the
so it will take a while.

To speed up subsequent builds, you can use [sccache][sccache]. Add the GN arg
`cc_wrapper = "sccache"` by running `gn args out/Default` to bring up an
`cc_wrapper = "sccache"` by running `gn args out/Debug` to bring up an
editor and adding a line to the end of the file.

[sccache]: https://github.com/mozilla/sccache

The built executable will be under `./out/Default`:
The built executable will be under `./out/Debug`:

```sh
$ ./out/Default/Electron.app/Contents/MacOS/Electron
$ ./out/Debug/Electron.app/Contents/MacOS/Electron
# or, on Windows
$ ./out/Default/electron.exe
$ ./out/Debug/electron.exe
# or, on Linux
$ ./out/Default/electron
$ ./out/Debug/electron
```

### Cross-compiling
Expand All @@ -139,7 +139,7 @@ set the `target_cpu` and `target_os` GN arguments. For example, to compile an
x86 target from an x64 host, specify `target_cpu = "x86"` in `gn args`.

```sh
$ gn gen out/Default-x86 --args='... target_cpu = "x86"'
$ gn gen out/Debug-x86 --args='... target_cpu = "x86"'
```

Not all combinations of source and target CPU/OS are supported by Chromium.
Expand All @@ -161,27 +161,27 @@ generate build headers for the modules to compile against, run the following
under `src/` directory.

```sh
$ ninja -C out/Default third_party/electron_node:headers
$ ninja -C out/Debug third_party/electron_node:headers
# Install the test modules with the generated headers
$ (cd electron/spec && npm i --nodedir=../../out/Default/gen/node_headers)
$ (cd electron/spec && npm i --nodedir=../../out/Debug/gen/node_headers)
```

Then, run Electron with `electron/spec` as the argument:

```sh
# on Mac:
$ ./out/Default/Electron.app/Contents/MacOS/Electron electron/spec
$ ./out/Debug/Electron.app/Contents/MacOS/Electron electron/spec
# on Windows:
$ ./out/Default/electron.exe electron/spec
$ ./out/Debug/electron.exe electron/spec
# on Linux:
$ ./out/Default/electron electron/spec
$ ./out/Debug/electron electron/spec
```

If you're debugging something, it can be helpful to pass some extra flags to
the Electron binary:

```sh
$ ./out/Default/Electron.app/Contents/MacOS/Electron electron/spec \
$ ./out/Debug/Electron.app/Contents/MacOS/Electron electron/spec \
--ci --enable-logging -g 'BrowserWindow module'
```

Expand Down
2 changes: 1 addition & 1 deletion script/lib/utils.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const OUT_DIR = process.env.ELECTRON_OUT_DIR || 'Default'
const OUT_DIR = process.env.ELECTRON_OUT_DIR || 'Debug'

const path = require('path')

Expand Down

1 comment on commit 9e85bdb

@MarshallOfSound
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI this broke CI because CI still uses Default.

I'm going to fix it in #14613

Please sign in to comment.