blob: 525aea4f111563f831d03059fa6115fa28576b76 [file] [log] [blame] [view]
# Configure and build Fuchsia {#configure-and-build-fuchsia}
This document describes how to set up and build Fuchsia.
## Prerequisites
Before you can set up and build Fuchsia, you need to follow the steps in
[get the Fuchsia source code](/docs/get-started/
to download Fuchsia source code and set up your environment variables.
## Set build configuration
To set your build configuration for Fuchsia, run the following command:
<pre class="prettyprint">
<code class="devsite-terminal">fx set <var>product</var>.<var>board</var></code>
The `fx set` command takes <var>PRODUCT</var> and <var>BOARD</var> arguments,
which define the
[product and board](/docs/concepts/build_system/
configuration of your build. This configuration informs the build system what
packages to build for your Fuchsia device.
For a Fuchsia emulator with the core set of Fuchsia features, the build configuration is:
fx set core.qemu-x64
In this example:
* `core` is a product with the minimum feature set for Fuchsia, which includes
common network capabilities.
* `qemu-x64` is the board, which refers to the x64 architecture on the
Fuchsia Emulator (FEMU) which is based on the open source emulator, QEMU.
For a Fuchsia device with the core set of Fuchsia features, the build configuration is
fx set core.x64
See [Configure a build](/docs/development/build/ for
more product and board options.
### Speed up the build {#speed-up-the-build}
Note: This step is optional.
To reduce the time it takes to build Fuchsia, you can do any of the following:
* [Speed up the build with Goma](#speed-up-the-build-with-goma)
* [Speed up the build with ccache](#speed-up-the-build-with-ccache)
#### Speed up the build with Goma {#speed-up-the-build-with-goma}
[Goma]({:.external} is a
distributed compiler service for open source projects such as Chrome, Android
and Fuchsia. If you have access to Goma, run the following command to enable a
Goma client on your machine:
fx goma
#### Speed up the build with ccache {#speed-up-the-build-with-ccache}
If you do not have access to Goma, but want to accelerate the Fuchsia build
locally, use <code>[ccache]({:.external}</code> to cache
artifacts from previous builds.
To use `ccache` on Linux, install the following package:
sudo apt-get install ccache
For macOS, see
[Using CCache on Mac]({:.external}
for installation instructions.
`ccache` is enabled automatically if your `CCACHE_DIR` environment variable
refers to an existing directory.
To override the default behavior, pass the following flags to `fx set`:
* Force use of ccache even if other accelerators are available:
fx set core.x64 --ccache
* Disable use of ccache:
fx set core.x64 --no-ccache
## Build Fuchsia
Note: Building Fuchsia can take up to 90 minutes.
To build Fuchsia, run the following command:
fx build
The `fx build` command executes the build to transform source code into packages
and other build artifacts.
If you modify source code, re-run the `fx build` command to perform an
incremental build, or run the `fx -i build` command to start a watcher, which
automatically builds whenever you update source code.
See [Execute a build](/docs/development/build/ for more
## Next steps
Set up Fuchsia on an emulator or a device:
* To set up a Fuchsia emulator and experiment with Fuchsia, follow the steps in
[Set up the Fuchsia emulator (FEMU)](/docs/get-started/
* To set up a hardware device, follow the steps in
[Installing Fuchsia on a device](/docs/development/hardware/ and the
[build and pave quickstart](/docs/development/build/
Once you have set up the emulator or paved a device with Fuchsia, see:
* [Explore Fuchsia](/docs/get-started/ to learn more about how Fuchsia
is structured and common workflows.