[gn] Roll gn

45314e29 [metadata] Return metadata in postorder.
e49432fa [metadata] Actually collect the metadata
c1780c21 [metadata] Allow specification of rebase dir
5a9e0a2c [metadata] Adding metadata vars to write_data target
d021d391 [metadata] Add generated_file target type
27b66b57 Allow whitespace in include directives.
c6841d31 Fix a crash on invalid on `not_needed(scope)` without a 2nd argument.
54be6f11 Allow NOSORT to be the last line in a comment in addition to the first.
a07831bb (master) [metadata] Adding `meta` command
0587778f [metadata] Walk function
96c77296 [metadata] Add metadata walk to target
a27e8dc0 [metadata] Adding basic metadata walking
2000587b [metadata] Adding metadata output to gn desc
0e1b8843 [metadata] Adding metadata variable to target
ecc95221 (resolve_off_main) Add links to the "Using GN build" presentation.
13ac6ca4 Test that not_needed works with forward_variables_from
0790d304 List .gn file in build.ninja.d.
9dfbe7fd win: Slightly simplify build flags.
384850bb Explicitly handle all ValueType enum values
1426651d Make regen with --dotfile and --root work.
dd2f4cf0 [docs] Fixing broken link.
2a4d9002 gen.py: Remove UpdateLinuxSysroot()
df15af47 Explicitly specify sysroot for Linux and macOS
56b4bad8 Use Fuchsia's Clang toolchain on macOS
85d0c04b Remove all macOS specific code from base and framework dependencies
96ff462c Define C/C++ version for QtCreator project
a0108938 [recipe] Use ${platform} variable for CIPD

Change-Id: Id2bbfe888b024d0ff038bc246bafe70fb7de2f52
2 files changed
tree: e782f562f95983c34d692f82c333fde8d2cde476
  1. manifest/
  2. .cipd_version
  3. .cipd_version.digests
  4. .gitignore
  5. AUTHORS
  6. cipd
  7. download.sh
  8. exec_tool.sh
  9. fuchsia.ensure
  10. fuchsia.versions
  11. gn
  12. go
  13. godepfile
  14. LICENSE
  15. MAINTAINERS
  16. ninja
  17. PATENTS
  18. README.md
  19. update.sh
  20. vars.sh
README.md

Fuchsia Build Tools

This repository contains the hashes of a number of prebuilt tools that are used to build Fuchsia-related projects. The actual tools themselves are located in Google Storage.

In most cases, the jiri tool will download the build tools automatically during its update step. To download the tools manually, run update.sh.

Uploading a tool

NOTE: These instructions are for Googlers only.

TODO: These instructions are out of date. Use CIPD for everything.

Installing gsutil

The tarballs are uploaded with the “gsutil” program. See https://cloud.google.com/storage/docs/gsutil

There's a link there to download and install the Google Cloud SDK: https://cloud.google.com/sdk/docs/

After installing the SDK you need to initialize/authenticate: https://cloud.google.com/storage/docs/gsutil_install#authenticate

One of the steps will ask you for a cloud project. Choose loas-fuchsia-team.

At this point you can use gsutil to upload/download tarballs, view cloud directory contents, and so on.

Tarballs

Tarballs must have the tool name as the top level directory. E.g.,

bash$ tar tvf qemu.tar.bz2
drwxr-xr-x ... qemu/
drwxr-xr-x ... qemu/libexec/
...

The uploaded file name is the sha1 hash of the tarball. It could also be a sha1 hash of the tarball contents, avoiding unnecessary spurious differences in uploads.

To compute the latter, one can do something like:

bash$ LC_ALL=POSIX cat $(find qemu/ -type f | sort) | shasum -a1

The sha1 hash is checked into the buildtools repo and supports adding new tarballs or rolling back to a previous one. See the *.sha1 files in buildtools/{mac,linux64}.

There are separate directories for mac and linux tarballs. E.g.,

bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/mac
gs://fuchsia-build/fuchsia/qemu/mac/
gs://fuchsia-build/fuchsia/qemu/mac/10d77d7df5b39440148ac3aab1a401ff42337a76
...
bash$ ./bin/gsutil ls gs://fuchsia-build/fuchsia/qemu/linux64
gs://fuchsia-build/fuchsia/qemu/linux64/
gs://fuchsia-build/fuchsia/qemu/linux64/10d77d7df5b39440148ac3aab1a401ff42337a76
...