# 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"), ] } }