OLD | NEW |
| (Empty) |
1 # Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
2 # for details. All rights reserved. Use of this source code is governed by a | |
3 # BSD-style license that can be found in the LICENSE file. | |
4 | |
5 import("../build/prebuilt_dart_sdk.gni") | |
6 | |
7 _dart_root = rebase_path("..") | |
8 | |
9 # Template to generate a patched_sdk folder. This invokes the tools/patch_sdk.py | |
10 # script and sets up the right dependencies. | |
11 # | |
12 # This template expects four arguments: | |
13 # - mode: vm or dart2js (whether to build an sdk for the vm or for dart2js) | |
14 # - input_patches_dir: directory containing the input library files. | |
15 # - patched_sdk_dir: the output location | |
16 # - deps: extra dependencies that must be built ahead of time. | |
17 template("generate_patched_sdk") { | |
18 assert(defined(invoker.input_patches_dir), | |
19 "Need input_patches_dir in $target_name") | |
20 assert(defined(invoker.patched_sdk_dir), | |
21 "Need patched_sdk_dir in $target_name") | |
22 assert(defined(invoker.mode), "Need mode in $target_name") | |
23 action(target_name) { | |
24 | |
25 if (defined(invoker.deps)) { | |
26 deps = invoker.deps | |
27 } else { | |
28 deps = [] | |
29 } | |
30 | |
31 if (!prebuilt_dart_exe_works) { | |
32 deps += ["$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)"] | |
33 } | |
34 | |
35 script = "$_dart_root/tools/patch_sdk.py" | |
36 | |
37 # We list the `patch_sdk.dart` tool here because the [script] (which is | |
38 # implicitly an input) will call it. | |
39 inputs = [ | |
40 "$_dart_root/tools/patch_sdk.dart", | |
41 ] | |
42 | |
43 depfile = "$root_out_dir/${target_name}.d" | |
44 | |
45 outputs = [ | |
46 # Instead of listing all outputs we list a single well-known one. | |
47 "$root_out_dir/${invoker.patched_sdk_dir}/platform.dill", | |
48 ] | |
49 | |
50 args = [ "--quiet" ] | |
51 if (!prebuilt_dart_exe_works) { | |
52 dart_out_dir = get_label_info( | |
53 "$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)", | |
54 "root_out_dir") | |
55 dart_bootstrap = | |
56 rebase_path("$dart_out_dir/dart_bootstrap$executable_suffix") | |
57 args += [ | |
58 "--dart-executable", | |
59 dart_bootstrap, | |
60 ] | |
61 } | |
62 args += [ | |
63 invoker.mode, | |
64 rebase_path("$_dart_root/sdk"), | |
65 rebase_path(invoker.input_patches_dir), | |
66 rebase_path("$root_out_dir/${invoker.patched_sdk_dir}", root_build_dir), | |
67 rebase_path("$_dart_root/.packages"), | |
68 ] | |
69 } | |
70 } | |
71 | |
OLD | NEW |