68dc77f456
This involves a few main pieces: - Add code to the GN scripts to generate DDC's patched SDK and then compile it to summaries and JS in the build output directory. - Add support to the underlying DDC build scripts to support controlling which files are built where. - Update test.dart to use the DDC SDK from the build directory. - Update create_sdk to use the built SDK instead of the checked in one. - Fix various internal DDC tools to build their own copy of the SDK (since they can't easily find the one in the build directory because it's path if config-specific) and use those. - Delete the checked DDC SDK JS and summaries. I think I got everything working. The built Dart SDK looks fine -- it's identical to one built using the old build scripts. The various tools and DDC's little test runner I *think* work, but there may be a bug or two in there. I tried the various things I could and it seems like they work but it's hard to tell since they may be kind of broken right now anyway. Bug: Change-Id: Iea77915a5c1cc8450f60ebfbdf8c725c7ea2f32c Reviewed-on: https://dart-review.googlesource.com/18144 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: Zach Anderson <zra@google.com> Reviewed-by: Vijay Menon <vsm@google.com>
Tools for processing the Dart SDK
patch_sdk.dart
This script combines:
tool/input_sdk/lib/...
tool/input_sdk/patch/...
tool/input_sdk/private/...
and produces the merged SDK sources in:
gen/patched_sdk/...
The result has all "external" keywords replaced with the @patch implementations.
Generally local edits should be to input_sdk/patch and input_sdk/private,
as those two directories are specific to DDC. input_sdk/lib should represent
unmodified SDK sources to the maximum extent possible. Currently there are
slight edits to the type annotations in some cases.
See patch_sdk.dart for more information.
sdk_version_check.dart
Asserts that the Dart VM is at least a particular semantic version. It returns an exit code to make it easy to integrate with shell scripts.