| Index: utils/generate_patch_sdk.gni
|
| diff --git a/utils/generate_patch_sdk.gni b/utils/generate_patch_sdk.gni
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9c3dd55bf97bcc348afd20f4b0892434cd732e6c
|
| --- /dev/null
|
| +++ b/utils/generate_patch_sdk.gni
|
| @@ -0,0 +1,71 @@
|
| +# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
|
| +# for details. All rights reserved. Use of this source code is governed by a
|
| +# BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import("../build/prebuilt_dart_sdk.gni")
|
| +
|
| +_dart_root = get_path_info("..", "abspath")
|
| +
|
| +# Template to generate a patched_sdk folder. This invokes the tools/patch_sdk.py
|
| +# script and sets up the right dependencies.
|
| +#
|
| +# This template expects four arguments:
|
| +# - mode: vm or dart2js (whether to build an sdk for the vm or for dart2js)
|
| +# - input_patches_dir: directory containing the input library files.
|
| +# - patched_sdk_dir: the output location
|
| +# - deps: extra dependencies that must be built ahead of time.
|
| +template("generate_patched_sdk") {
|
| + assert(defined(invoker.input_patches_dir),
|
| + "Need input_patches_dir in $target_name")
|
| + assert(defined(invoker.patched_sdk_dir),
|
| + "Need patched_sdk_dir in $target_name")
|
| + assert(defined(invoker.mode), "Need mode in $target_name")
|
| + action(target_name) {
|
| +
|
| + if (defined(invoker.deps)) {
|
| + deps = invoker.deps
|
| + } else {
|
| + deps = []
|
| + }
|
| +
|
| + if (!prebuilt_dart_exe_works) {
|
| + deps += ["$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)"]
|
| + }
|
| +
|
| + script = "$_dart_root/tools/patch_sdk.py"
|
| +
|
| + # We list the `patch_sdk.dart` tool here because the [script] (which is
|
| + # implicitly an input) will call it.
|
| + inputs = [
|
| + "$_dart_root/tools/patch_sdk.dart",
|
| + ]
|
| +
|
| + depfile = "$root_out_dir/${target_name}.d"
|
| +
|
| + outputs = [
|
| + # Instead of listing all outputs we list a single well-known one.
|
| + "$root_out_dir/${invoker.patched_sdk_dir}/platform.dill",
|
| + ]
|
| +
|
| + args = [ "--quiet" ]
|
| + if (!prebuilt_dart_exe_works) {
|
| + dart_out_dir = get_label_info(
|
| + "$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)",
|
| + "root_out_dir")
|
| + dart_bootstrap =
|
| + rebase_path("$dart_out_dir/dart_bootstrap$executable_suffix")
|
| + args += [
|
| + "--dart-executable",
|
| + dart_bootstrap,
|
| + ]
|
| + }
|
| + args += [
|
| + invoker.mode,
|
| + rebase_path("$_dart_root/sdk"),
|
| + rebase_path(invoker.input_patches_dir),
|
| + rebase_path("$root_out_dir/${invoker.patched_sdk_dir}", root_build_dir),
|
| + rebase_path("$_dart_root/.packages"),
|
| + ]
|
| + }
|
| +}
|
| +
|
|
|