| # fx set |
| |
| set up a build directory |
| |
| ```none |
| usage: fx set PRODUCT.BOARD [--with GNLABEL1,GNLABEL2,...] |
| [--release] [--args ARG] [--variant VARIANT] |
| [--with-test GNLABEL1,GNLABEL2,...] |
| |
| where PRODUCT is an entry from `//products` or `//vendor/*/products` and |
| BOARD is an entry from `//boards` or `//vendor/*/boards`. Use the |
| `fx list-products` and `fx list-boards` commands to see a list of |
| possible products and boards (respectively). See the README.md in those |
| directories for a description of the various options. |
| |
| Use `fx --dir BUILD_DIR set` to specify the build directory. If it begins with |
| `//` or `out/` then it's taken as relative to FUCHSIA_DIR. Otherwise it should |
| be an absolute path or a path relative to the current working directory that |
| winds up in `FUCHSIA_DIR/out`. It defaults to `out/default`. |
| |
| This command stores the location of the build directory in the //.fx-build-dir |
| file, which causes subsequent `fx` commands to use that build directory. Use |
| `fx use` to switch build directories. |
| |
| This is a wrapper around running `gn gen --check=system BUILD_DIR --args ...`. |
| If GN fails with an error, `fx set` does not change anything. |
| |
| optional arguments: |
| --args Additional argument to pass to gn. If the --args |
| argument is given multiple times, all the specified |
| arguments are passed to gn. |
| N.B. Arguments must be expressed using GN's syntax. |
| In particular this means that for strings they must |
| be quoted with double-quotes, and the quoting must |
| survive, for example, the shell. Thus when passing |
| an argument that takes a string, pass it with |
| something like --args=foo='"bar"'. E.g., |
| bash$ fx set core.x64 --args=foo='"bar"' |
| More complicated arguments, e.g., lists, require |
| their own special syntax. See GN documentation |
| for the syntax of each kind of argument. |
| --ccache|--no-ccache Whether to use ccache during the build. Ccache attempts |
| to make builds faster by caching build artifacts. |
| Defaults to detecting whether the CCACHE_DIR environment |
| variable is set to a directory. |
| --fuzz-with Pass a sanitizer name, e.g. "--fuzz-with asan" to |
| enable ALL supporting fuzzers. Use --variant for |
| individual fuzzers, e.g. "--variant asan-fuzzer/foo". |
| --rbe-mode Use a preset RBE configuration. |
| Valid options: auto, off, workstation, cloudtop, |
| legacy_default, remote_cache_only, low_bandwidth. |
| 'auto' chooses one of the other options for you. |
| See also build/toolchain/rbe_modes.gni for details. |
| Default: auto |
| --cxx-rbe If set, use reclient (RBE) to remotely compile and |
| cache C++ targets. |
| This overrides the C++ setting in --rbe-mode. |
| Default: enabled on linux-x64, disabled elsewhere. |
| --link-rbe If set, use reclient (RBE) to remotely link and |
| cache C++ targets. |
| This overrides the linking setting in --rbe-mode. |
| Default: disabled |
| --rust-rbe If set, use the remote backend (RBE) service for |
| building and caching Rust targets. |
| This overrides the Rust setting in --rbe-mode. |
| Default: disabled |
| --bazel-rbe If set, allow bazel to build remotely on RBE. |
| This overrides the Bazel setting in --rbe-mode. |
| Default: disabled |
| --ide Pass --ide=VALUE to gn when generating to create project |
| files usable with that IDE. Useful values include "vs" |
| for Visual Studio or "xcode" for Xcode. |
| --json-ide-script Pass --json-ide-script=python_script to gn which runs |
| the given python script after the JSON project file is |
| generated when using --ide json. The path to the project |
| file is given as the first argument to the script. |
| The script may be a path or a gn label. |
| --netboot Ensure that a network ramboot image is always built. |
| --compilation-mode Sets the `compilation_mode` to the specified value. |
| Valid values are "release", "balanced", and "debug". |
| Defaults to "balanced". |
| --release Shortcut for `--compilation-mode release`. |
| --balanced Shortcut for `--compilation-mode balanced`, which is |
| less optimized than `"release"`, but still has some |
| optimizations enabled. |
| --debug Shortcut for `--compilation-mode debug`. |
| --variant Selects which runtime variant to use (e.g., asan) by |
| passing a `select_variant=[VARIANT*,...]` argument |
| to gn that collects all the --variant arguments in |
| order. Variants are normal builds in most respects, |
| but allow users to test different runtime settings |
| for either the whole build or for a specific target. |
| This can be specified by passing the variant name |
| to this argument (e.g. `--variant asan`) for the |
| former, or the variant name and the target name |
| separated by a slash (e.g. `--variant asan/my_test`) |
| for the latter. |
| --with GNLABEL Labels of additional packages to include in the |
| 'universe' set of available packages. These packages |
| can be run ephemerally. Multiple labels can be |
| provided delimited by commas or the --with argument |
| can be provided multiple times. |
| --with-test GNLABEL Labels of additional tests to include in the build. |
| When run by 'fx test', these tests are ephemeral. To |
| add host tests, either use '--with-host' qualify the |
| the label with the host toolchain, or add a group |
| which depends on the host tests in the host |
| toolchain. Multiple labels can be provided delimited |
| by commas or the '--with-test' argument can be |
| provided multiple times. |
| --with-host GNLABEL Labels of additional host-only targets to be |
| produced by the build. Multiple labels can be |
| provided delimited by commas or the --with-host |
| argument can be provided multiple times. |
| --cargo-toml-gen Enable generation of Cargo.toml files. |
| --include-clippy[=true|false] Run clippy as part of `fx build` (defaults to `true`) |
| --fint-params-path Used to specify a path to a fint parameters file, as |
| selected by `fx repro`. If set, no other flags that |
| influence the build configuration should be set. |
| --dev Always recompile fx-set from source. |
| --assembly-override Pairs of ASSEMBLY_TARGET=OVERRIDE_TARGET labels to use |
| to define the developer assembly overrides targets to |
| use with the given assembly target. Can be provided |
| multiple times with different ASSEMBLY_TARGET labels. |
| if the 'ASSEMBLY_TARGET=' portion is omitted, the |
| "main" assembly for the product will be assumed. |
| --main-pb Build label for the main product bundle to work with. |
| Useful for multi-product builds. |
| --no-change-env Configure the build graph without modifying global .fx-build-dir |
| or out/default symlinks. Keep environment pristine. |
| |
| Example: |
| |
| $ fx set core.x64 --with-test //bundles/tests |
| -> build directory: out/core.x64 |
| board: //boards/x64.gni |
| product: //products/core.gni |
| developer_test_labels: //bundles/tests (all test packages) |
| ``` |
| |
| [set source code](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/devshell/set) |