tree: 8665e187dafb8004e8fab2c798288326b713ef12 [path history] [tgz]
  1. bazel/
  2. common/
  3. gn/
  4. merger/
  5. tools/
  6. build_sdk.py
  7. METADATA.textproto
  8. OWNERS
  9. README.md
scripts/sdk/README.md

SDK frontends

This directory contains a frontend for the SDK pipeline:

  • gn/: creates a C/C++ GN workspace.

In addition, the common/ directory provides plumbing shared by all frontends, tools/ contains various tools to work with SDK manifests, and merger/ contains the merge script used to assemble multiple SDK platform subbuilds into the final product.

Build script

This directory also contains build_sdk.py, a script that can be used to build the full IDK locally essentially equivalent to what's available on https://fuchsia.dev/fuchsia-src/development/idk.

Warning: Jiri only downloads and makes available prebuilts that match the local platform. As such, those are the only ones that will be included in the locally built archive - running this script on an x64 system will result in an archive without arm64 prebuilt tools, even if the target architecture is arm64.

Usage

# Provide the platform(s) you'd like to build for with --arch
# and the output filename. The output file is a tar.gz.
build_sdk.py --arch x64 arm64 --output ~/fuchsia_sdk.tar.gz

# Arch can be `x64`, `arm64`, or both. Use both to replicate the standard
# build process, or pick just the one you need for a much faster build time.
build_sdk.py --arch x64 --output ~/fuchsia_sdk.tar.gz

# --output-dir can be used instead if a compressed archive is not required.
build_sdk.py --arch x64 --output-dir ~/fuchsia_sdk/

# Use -GN to apply the GN build rules after the build.
# Googlers can use --internal to build the internal SDK instead,
# and --rbe to enable remote builds.
build_sdk.py --arch x64 --GN --internal --rbe --output ~/fuchsia_sdk.tar.gz

Advanced Usage

It's also possible to manually compose and pass in fint param files. See //tools/integration/fint/README.md for more information about these configuration files as well as the relevant proto definitions. Note that flags that change the build configuration (e.g. --internal/--rbe) have no effect when directly using a fint param file.

Use --fint-params-path to pass in a single static config or --fint-config to pass in a json formatted string containing sets of static and context config files. See //integration/infra/config/generated/fuchsia/fint_params/global.ci/ for examples of static configs used in CI. If provided,the context config used must include at a minimum the checkout_dir and build_dir fields.