This is a README file describing how to build Dart for Fuchsia. It assumes that
you have built the magenta kernel under //magenta, its toolchains are
under //toolchains, and that you have a Dart checkout under //dart. It is early
days and this is crufty. The process will improve from here.

1. First, set up some symlinks in your Dart checkout:

  //dart/third_party/fuchsia_tools/toolchains
      -> symlinked to //toolchains
  //dart/third_party/fuchsia_tools/sysroot/x86_64/usr
      -> symlinked to //magenta/build-magenta-qemu-x86-64/sysroot/

  Also, copy the linker script:

  //magenta$ cp kernel/arch/x86/64/user.ld build-magenta-qemu-x86-64/sysroot/

  and similarly for arm64.

2. Build:

  //dart$ tools/build.py -m product -a x64 --os=fuchsia fuchsia_test

  This will produce //dart/out/ProductFuchsiaX64/fuchsia_test

3. Strip it:

  //dart$ third_party/fuchsia_tools/toolchains/x86_64-elf-5.3.0-Linux-x86_64/bin/x86_64-elf-strip out/ProductFuchsiaX64/fuchsia_test -o out/ProductFuchsiaX64/fuchsia_test.stripped

4. Make a file //magenta/fuchsia_test.manifest containing:

  bin/fuchsia_test=//dart/out/ProductFuchsiaX64/fuchsia_test.stripped

  Where //dart is the actual path to your Dart checkout.

5. Make an extra bootfs:

  //magenta$ build-magenta-qemu-x86-64/tools/mkbootfs -o fuchsia_test.bootfs fuchsia_test.manifest

6. Run:

  //magenta$ ./scripts/run-magenta-x86-64 -x fuchsia_test.bootfs
