Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(577)

Side by Side Diff: runtime/observatory/BUILD.gn

Issue 2464153003: GN: Fall back on dart_bootstrap where appropriate. (Closed)
Patch Set: Address comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | runtime/vm/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("../../utils/invoke_dart.gni")
6
5 # Currently paths here are hard coded for convenience in building Mojo/Flutter. 7 # Currently paths here are hard coded for convenience in building Mojo/Flutter.
6 declare_args() { 8 declare_args() {
7 # Specify the path to a host compatible version of the Dart SDK. 9 # Specify the path to a host compatible version of the Dart SDK.
8 # This SDK is used to compile the Observatory frontend sources. 10 # This SDK is used to compile the Observatory frontend sources.
9 dart_host_sdk = rebase_path("//third_party/dart-sdk/dart-sdk") 11 dart_host_sdk = rebase_path("//third_party/dart-sdk/dart-sdk")
10 12
11 # Specify the path to a host compatible version of pub. 13 # Specify the path to a host compatible version of pub.
12 # This is used to compile the Observatory frontend sources. 14 # This is used to compile the Observatory frontend sources.
15 #
16 # The observatory build tool searches for pub first using this GN arg, then
17 # for the checked-in SDK, and if that doesn't work, it uses the dart_bootstrap
18 # built as part of the build to invoke pub. If this arg is set to a non-empty
19 # string, we assume that there is no need for dart_bootstrap. If it is set to
20 # "", then we assume that there may be a need for dart_bootstrap.
13 dart_host_pub_exe = rebase_path("$dart_host_sdk/bin/pub") 21 dart_host_pub_exe = rebase_path("$dart_host_sdk/bin/pub")
14 } 22 }
15 23
24 # Construct arguments to the observatory tool for finding pub.
25 pub_build_deps = []
26 pub_build_args = []
27 if (dart_host_pub_exe != "") {
28 pub_build_args = [
29 "--pub-executable",
30 dart_host_pub_exe,
31 ]
32 } else {
33 pub_build_deps += [ "../bin:dart_bootstrap($host_toolchain)" ]
34
35 dart_out_dir =
36 get_label_info("../bin:dart_bootstrap($host_toolchain)", "root_out_dir")
37 dart_bootstrap =
38 rebase_path("$dart_out_dir/dart_bootstrap$dart_executable_suffix")
39
40 pub_build_args = [
41 "--sdk=True",
42 "--dart-executable",
43 dart_bootstrap,
44 ]
45 }
46
47 current_dir = rebase_path(".", "//")
48
16 # Helper build rules for packaging the Dart observatory resources. 49 # Helper build rules for packaging the Dart observatory resources.
17 observatory_sources_gypi = 50 observatory_sources_gypi =
18 exec_script("../../tools/gypi_to_gn.py", 51 exec_script("../../tools/gypi_to_gn.py",
19 [ rebase_path("../observatory/observatory_sources.gypi") ], 52 [ rebase_path("../observatory/observatory_sources.gypi") ],
20 "scope", 53 "scope",
21 [ "../observatory/observatory_sources.gypi" ]) 54 [ "../observatory/observatory_sources.gypi" ])
22 55
23 copy("copy_observatory") { 56 copy("copy_observatory") {
24 sources = rebase_path(observatory_sources_gypi.sources, "", ".") 57 sources = rebase_path(observatory_sources_gypi.sources, "", ".")
25 outputs = [ 58 outputs = [
26 "$root_gen_dir/observatory_copy/{{source_root_relative_dir}}/{{source_file_p art}}", 59 "$root_gen_dir/observatory_copy/{{source_root_relative_dir}}/{{source_file_p art}}",
27 ] 60 ]
28 } 61 }
29 62
30 action("write_observatory_pubspec_yaml") { 63 action("write_observatory_pubspec_yaml") {
31 deps = [ 64 deps = [ ":copy_observatory" ] + pub_build_deps
32 ":copy_observatory",
33 ]
34
35 script = "../../tools/observatory_tool.py"
36 65
37 inputs = [ 66 inputs = [
38 rebase_path("pubspec.yaml"), 67 rebase_path("pubspec.yaml"),
39 ] 68 ]
40 69
41 current_dir = rebase_path(".", "//") 70 script = "../../tools/observatory_tool.py"
42 args = [ 71 args =
43 "--silent=True", 72 pub_build_args + [
44 "--pub-executable", 73 "--silent=True",
45 dart_host_pub_exe, 74 "--directory",
46 "--directory", 75 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
47 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"), 76 "--command",
48 "--command", 77 "rewrite",
49 "rewrite", 78 rebase_path("../observatory/pubspec.yaml"),
50 rebase_path("../observatory/pubspec.yaml"), 79 rebase_path("$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml"),
51 rebase_path("$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml"), 80 "../../third_party/",
52 "../../third_party/", 81 rebase_path("../../third_party/"),
53 rebase_path("../../third_party/"), 82 ]
54 ]
55 83
56 outputs = [ 84 outputs = [
57 "$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml", 85 "$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml",
58 ] 86 ]
59 } 87 }
60 88
61 action("copy_observatory_deps") { 89 action("copy_observatory_deps") {
62 deps = [ 90 deps = [ ":write_observatory_pubspec_yaml" ] + pub_build_deps
63 ":write_observatory_pubspec_yaml", 91
92 inputs = [
93 "$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml",
64 ] 94 ]
65 95
66 script = "../../tools/observatory_tool.py" 96 script = "../../tools/observatory_tool.py"
67 97 args = pub_build_args + [
68 current_dir = rebase_path(".", "//") 98 "--silent=True",
69 inputs = [ 99 "--stamp",
70 script, 100 rebase_path(
71 "$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml", 101 "$root_gen_dir/observatory_copy/$current_dir/packages.stamp"),
72 ] 102 "--directory",
73 103 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
74 args = [ 104 "--command",
75 "--silent=True", 105 "get",
76 "--pub-executable", 106 ]
77 dart_host_pub_exe,
78 "--stamp",
79 rebase_path("$root_gen_dir/observatory_copy/$current_dir/packages.stamp"),
80 "--directory",
81 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
82 "--command",
83 "get",
84 ]
85 107
86 outputs = [ 108 outputs = [
87 "$root_gen_dir/observatory_copy/$current_dir/packages.stamp", 109 "$root_gen_dir/observatory_copy/$current_dir/packages.stamp",
88 ] 110 ]
89 } 111 }
90 112
91 action("pub_build_observatory") { 113 action("pub_build_observatory") {
92 current_dir = rebase_path(".", "//") 114 deps = [
115 ":copy_observatory",
116 ":copy_observatory_deps",
117 ] + pub_build_deps
118
93 sources = rebase_path(observatory_sources_gypi.sources, 119 sources = rebase_path(observatory_sources_gypi.sources,
94 "", 120 "",
95 "$root_gen_dir/observatory_copy/$current_dir") 121 "$root_gen_dir/observatory_copy/$current_dir")
96 122
97 deps = [ 123 inputs =
98 ":copy_observatory", 124 sources + [ "$root_gen_dir/observatory_copy/$current_dir/packages.stamp" ]
99 ":copy_observatory_deps",
100 ]
101 125
102 script = "../../tools/observatory_tool.py" 126 script = "../../tools/observatory_tool.py"
103 127 args = pub_build_args + [
104 inputs = [ 128 "--silent=True",
105 script, 129 "--directory",
106 "$root_gen_dir/observatory_copy/$current_dir/packages.stamp", 130 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
107 ] 131 "--command",
108 inputs += sources 132 "build",
109 133 rebase_path("$root_out_dir/observatory/build"),
110 args = [ 134 ]
111 "--silent=True",
112 "--pub-executable",
113 dart_host_pub_exe,
114 "--directory",
115 rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
116 "--command",
117 "build",
118 rebase_path("$root_out_dir/observatory/build"),
119 ]
120 135
121 outputs = [ 136 outputs = [
122 "$root_out_dir/observatory/build/web/main.dart.js", 137 "$root_out_dir/observatory/build/web/main.dart.js",
123 ] 138 ]
124 } 139 }
125 140
126 action("deploy_observatory") { 141 action("deploy_observatory") {
127 deps = [ 142 deps = [ ":pub_build_observatory" ] + pub_build_deps
128 ":pub_build_observatory",
129 ]
130 143
131 script = "../../tools/observatory_tool.py" 144 script = "../../tools/observatory_tool.py"
132 145
133 inputs = [ 146 inputs = [
134 script, 147 script,
135 "$root_out_dir/observatory/build/web/main.dart.js", 148 "$root_out_dir/observatory/build/web/main.dart.js",
136 ] 149 ]
137 150
138 args = [ 151 args = pub_build_args + [
139 "--silent=True", 152 "--silent=True",
140 "--pub-executable", 153 "--directory",
141 dart_host_pub_exe, 154 rebase_path("$root_out_dir/observatory"),
142 "--directory", 155 "--command",
143 rebase_path("$root_out_dir/observatory"), 156 "deploy",
144 "--command", 157 ]
145 "deploy",
146 ]
147 158
148 outputs = [ 159 outputs = [
149 "$root_out_dir/observatory/deployed/web/main.dart.js", 160 "$root_out_dir/observatory/deployed/web/main.dart.js",
150 ] 161 ]
151 } 162 }
152 163
153 template("observatory_archive") { 164 template("observatory_archive") {
154 assert(defined(invoker.inner_namespace), 165 assert(defined(invoker.inner_namespace),
155 "Need inner_namespace in $target_name") 166 "Need inner_namespace in $target_name")
156 assert(defined(invoker.outer_namespace), 167 assert(defined(invoker.outer_namespace),
157 "Need outer_namespace in $target_name") 168 "Need outer_namespace in $target_name")
158 enable_compression = false 169 enable_compression = false
159 if (defined(invoker.compress) && invoker.compress) { 170 if (defined(invoker.compress) && invoker.compress) {
160 enable_compression = true 171 enable_compression = true
161 } 172 }
162 action(target_name) { 173 action(target_name) {
163 deps = [ 174 deps = [
164 ":deploy_observatory", 175 ":deploy_observatory",
165 ] 176 ]
166 177
167 script = "../tools/create_archive.py"
168
169 inputs = [ 178 inputs = [
170 script,
171 "$root_out_dir/observatory/deployed/web/main.dart.js", 179 "$root_out_dir/observatory/deployed/web/main.dart.js",
172 ] 180 ]
173 181
174 inner_namespace = invoker.inner_namespace 182 inner_namespace = invoker.inner_namespace
175 outer_namespace = invoker.outer_namespace 183 outer_namespace = invoker.outer_namespace
176 output_name = target_name 184 output_name = target_name
185
186 script = "../tools/create_archive.py"
177 args = [ 187 args = [
178 "--output", 188 "--output",
179 rebase_path("$root_gen_dir/observatory/${output_name}.cc"), 189 rebase_path("$root_gen_dir/observatory/${output_name}.cc"),
180 "--tar_output", 190 "--tar_output",
181 rebase_path("$root_gen_dir/observatory/${output_name}.tar"), 191 rebase_path("$root_gen_dir/observatory/${output_name}.tar"),
182 "--outer_namespace", 192 "--outer_namespace",
183 outer_namespace, 193 outer_namespace,
184 "--inner_namespace", 194 "--inner_namespace",
185 inner_namespace, 195 inner_namespace,
186 "--name", 196 "--name",
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 232
223 source_set("standalone_observatory_archive") { 233 source_set("standalone_observatory_archive") {
224 deps = [ 234 deps = [
225 ":standalone_archive_observatory", 235 ":standalone_archive_observatory",
226 ] 236 ]
227 237
228 sources = [ 238 sources = [
229 rebase_path("$root_gen_dir/observatory/standalone_archive_observatory.cc"), 239 rebase_path("$root_gen_dir/observatory/standalone_archive_observatory.cc"),
230 ] 240 ]
231 } 241 }
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698