| # fx goma |
| |
| manage Goma distributed compilation client |
| |
| ```none |
| Usage: fx goma [--browser] [--update] [--disable-http2] [--disable-local-cache] |
| [--local-cache-dir ABS_PATH] |
| |
| This makes sure that both initial setup tasks are complete and that |
| periodic maintenance actions are done. It's probably only really |
| necessary to run it once, but it should be harmless (and reasonably |
| fast) to run it again any time, such as after a `jiri update`. It's |
| just not a good idea to run it while you have a build running in the |
| background, since it may result in restarting the local Goma client |
| service and causing all new compilation commands to fail for a moment. |
| |
| See also `fx goma_auth` and `fx goma_ctl`. This mostly just runs those. |
| |
| The `fx goma_auth` command is usually only needed once at setup time to |
| run `fx goma_auth login`, which is done by `fx goma` if needed. Use `fx |
| goma_auth help` for details on `fx goma_auth` subcommands. If something |
| seems to be wrong, you can run the command `fx goma_auth logout` and |
| then repeat `fx goma`. |
| |
| The `fx goma_ctl` command controls the Goma client service on your local |
| machine. Use `fx goma_ctl help` for details. The common subcommand used |
| every day is `fx goma_ctl ensure_start` to make sure your local client |
| service is running. (`fx goma` does this for you but only after a few other |
| checks that might be somewhat slower than `fx goma_ctl ensure_start` alone.) |
| |
| The `--browser` switch is passed along to `fx goma_auth login` so that |
| it attempts to launch a browser window to perform authentication. This |
| may or may not work, depending on your desktop and command-line setup. |
| Without that switch, it will print out a URL you need to visit in your |
| browser to (authenticate and) copy a token to paste into a prompt. |
| |
| The `--disable-http2` switch disables the experimental HTTP2 proxy. |
| By default, the HTTP2 proxy is enabled to improve Goma network |
| performance. |
| |
| The `--disable-local-cache` switch disables the experimental local |
| output cache. By default, this is enabled to reduce Goma network |
| traffic. |
| |
| The `--local-cache-dir ABS_PATH` switch sets the cache directory for Goma. |
| By default it uses the `//.jiri_root/goma_cache` directory. If you have |
| multiple Fuchsia checkouts, it is recommended to set its value to |
| `${HOME}/.goma_cache` to allow cache sharing. The value needs to be an |
| absolute path. |
| |
| The `--kill` switch shuts down all goma related processes. |
| |
| **NOTE:** _The following features are temporary for the transition._ |
| |
| `fx goma` checks for an old Goma installation and recommends commands to |
| update to the current recommended style managed by `fx goma`. |
| |
| It also checks the current Fuchsia build directory's Goma configuration. |
| This is the only aspect of `fx goma` that refers to a build directory |
| (as controlled by the `--dir` switch to `fx` or the most recent `fx set` |
| or `fx use` command). It will report whether the build is set to use |
| the recommended Goma setup managed by `fx goma`. If given the |
| `--update` switch, it will modify the existing `args.gn` and then re-run |
| `fx gen` to enable Goma with the standard setup. This results in the |
| same configuration that a fresh `fx set` will with the `--goma` switch |
| (or without the switch, once `fx goma` has been done once). |
| |
| ``` |
| |
| [goma source code](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/devshell/contrib/goma) |