dart-sdk/utils/generate_patch_sdk.gni
Zach Anderson 4877587346 [GN] Uses dart_action.gni instead of compiled_action.gni.
This avoids conflicts with client repos that have a file
//build/compiled_action.gni with something different in them.

Change-Id: I133f66b0989bcb547cb8eed8710a88e2c1384bd7
Reviewed-on: https://dart-review.googlesource.com/53440
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-05-03 21:07:13 +00:00

51 lines
1.7 KiB
Text

# 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/dart/dart_action.gni")
_dart_root = get_path_info("..", "abspath")
# Template to generate a patched_sdk folder.
#
# 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")
prebuilt_dart_action(target_name) {
forward_variables_from(invoker, [
"deps",
])
depfile = "$root_out_dir/${target_name}_patched_sdk.d"
script = "$_dart_root/tools/patch_sdk.dart"
if (defined(invoker.outputs)) {
outputs = invoker.outputs
} else {
outputs = [
# Instead of listing all outputs we list those consumed by
# other BUILD rules.
"$root_out_dir/${invoker.patched_sdk_dir}/platform.dill",
"$root_out_dir/${invoker.patched_sdk_dir}/outline.dill",
]
}
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"),
]
}
}