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.
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.
# 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
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.