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

Side by Side Diff: sdk/BUILD.gn

Issue 2848943003: [infra] Assembles the SDK using GN rather than create_sdk.py (Closed)
Patch Set: Fix for Windows Created 3 years, 7 months 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
OLDNEW
1 # Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 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 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. 3 # BSD-style license that can be found in the LICENSE file.
4 4
5 # The SDK for Fuchsia does not include: 5 # This GN file contains build rules for assembling the Dart SDK. There are
6 # dart2js 6 # two possible variants: the "Full" SDK, and the "Platform" SDK. If you want
7 # dartdoc 7 # to make a new subset of the Full SDK, make it the same way we make
8 # ddc 8 # the Platform SDK.
9 # and libraries that are browser-specific, since these are not used and require 9 #
10 # significant time to build. 10 # Warning:
11 # TODO(zra): Assemble the SDK completely with GN, and remove create_sdk.py. 11 # If you need to copy something into dart-sdk/lib/foo in addition to the stuff
12 if (defined(is_fuchsia) && (is_fuchsia || is_fuchsia_host)) { 12 # copied there by :copy_libraries, then you must depend on ":copy_libraries",
13 template("copy_tree") { 13 # or ":copy_libraries" may delete/overwrite your addition, and the build will
14 assert(defined(invoker.source), "copy_tree must define 'source'") 14 # fail.
15 assert(defined(invoker.dest), "copy_tree must define 'dest'")
16 source = invoker.source
17 dest = invoker.dest
18 action(target_name) {
19 deps = []
20 if (defined(invoker.deps)) {
21 deps += invoker.deps
22 }
23 15
24 common_args = [ 16 import("../build/copy_tree.gni")
25 "--from",
26 rebase_path(source),
27 "--to",
28 rebase_path(dest),
29 ]
30 if (defined(invoker.exclude)) {
31 common_args += [
32 "--exclude",
33 invoker.exclude,
34 ]
35 }
36 17
37 dry_run_args = common_args + [ "--dry-run" ] 18 declare_args() {
38 input_files = 19 # Build a SDK with less stuff. It excludes dart2js, ddc, and web libraries.
39 exec_script("../tools/copy_tree.py", dry_run_args, "list lines") 20 dart_platform_sdk = false
40 inputs = input_files 21 }
41 relative_files = rebase_path(input_files, rebase_path(source))
42 22
43 output_files = [] 23 if (is_fuchsia || is_fuchsia_host) {
44 foreach(input, relative_files) { 24 dart_platform_sdk = true
45 output_files += [ "$dest/$input" ] 25 }
46 }
47 26
48 outputs = output_files 27 # Scripts that go under bin/
49 script = "../tools/copy_tree.py" 28 _platform_sdk_scripts = [
50 args = common_args 29 "dartanalyzer",
51 } 30 "dartfmt",
52 } 31 "pub",
32 ]
53 33
54 copy("copy_dart") { 34 _full_sdk_scripts = [
55 deps = [ 35 "dart2js",
56 "../runtime/bin:dart", 36 "dartanalyzer",
37 "dartdevc",
38 "dartfmt",
39 "pub",
40 ]
41
42 # Scripts not ending in _sdk that go under bin/
43 _scripts = [ "dartdoc" ]
44
45 # Snapshots that go under bin/snapshots
46 _platform_sdk_snapshots = [
47 [
48 "analysis_server",
49 "../utils/analysis_server",
50 ],
51 [
52 "dartanalyzer",
53 "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
54 ],
55 [
56 "dartdoc",
57 "../utils/dartdoc",
58 ],
59 [
60 "dartfmt",
61 "../utils/dartfmt",
62 ],
63 [
64 "pub",
65 "../utils/pub",
66 ],
67 ]
68
69 _full_sdk_snapshots = [
70 [
71 "analysis_server",
72 "../utils/analysis_server",
73 ],
74 [
75 "dart2js",
76 "../utils/compiler:dart2js",
77 ],
78 [
79 "dartanalyzer",
80 "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
81 ],
82 [
83 "dartdevc",
84 "../utils/dartdevc",
85 ],
86 [
87 "dartdoc",
88 "../utils/dartdoc",
89 ],
90 [
91 "dartfmt",
92 "../utils/dartfmt",
93 ],
94 [
95 "pub",
96 "../utils/pub",
97 ],
98 [
99 "utils_wrapper",
100 "../utils/compiler:utils_wrapper",
101 ],
102 ]
103
104 # Libraries that go under lib/
105 _platform_sdk_libraries = [
106 "_internal",
107 "async",
108 "collection",
109 "convert",
110 "core",
111 "developer",
112 "internal",
113 "io",
114 "isolate",
115 "math",
116 "mirrors",
117 "profiler",
118 "typed_data",
119 ]
120
121 _full_sdk_libraries = [
122 "_blink",
123 "_chrome",
124 "_internal",
125 "async",
126 "collection",
127 "convert",
128 "core",
129 "developer",
130 "html",
131 "indexed_db",
132 "internal",
133 "io",
134 "isolate",
135 "js",
136 "js_util",
137 "math",
138 "mirrors",
139 "profiler",
140 "svg",
141 "typed_data",
142 "web_audio",
143 "web_gl",
144 "web_sql",
145 ]
146
147 # Package sources copied to lib/
148 _analyzer_source_dirs = [
149 "analyzer",
150 "analysis_server",
151 "front_end",
152 "kernel",
153 ]
154
155 # Copies the Dart VM binary into bin/
156 copy("copy_dart") {
157 visibility = [ ":create_common_sdk" ]
158 deps = [
159 "../runtime/bin:dart",
160 ]
161 dart_out = get_label_info("../runtime/bin:dart", "root_out_dir")
162 if (is_win) {
163 sources = [
164 "$dart_out/dart.exe",
57 ] 165 ]
58 dart_out = get_label_info("../runtime/bin:dart", "root_out_dir") 166 } else if (is_fuchsia || is_fuchsia_host) {
59 dart_name = get_label_info("../runtime/bin:dart", "name")
60 sources = [ 167 sources = [
61 "$dart_out/$dart_name", 168 "$dart_out/dart",
62 ] 169 ]
63 outputs = [ 170 } else {
64 "$root_out_dir/dart-sdk/bin/dart", 171 sources = [
172 "$dart_out/exe.stripped/dart",
65 ] 173 ]
66 } 174 }
175 if (is_win) {
176 sources += [ "$dart_out/dart.lib" ]
177 }
178 outputs = [
179 "$root_out_dir/dart-sdk/bin/{{source_file_part}}",
180 ]
181 }
67 182
183 # Copies dynamically linked libraries into bin/. This is currently only needed
184 # for Fuchsia when building for Linux hosts.
185 if (is_fuchsia_host && is_linux) {
68 copy("copy_dylibs") { 186 copy("copy_dylibs") {
187 visibility = [ ":create_common_sdk" ]
69 deps = [ 188 deps = [
70 "//third_party/boringssl:crypto", 189 "//third_party/boringssl:crypto",
71 "//third_party/boringssl:ssl", 190 "//third_party/boringssl:ssl",
72 ] 191 ]
73 crypto_out = 192 crypto_out =
74 get_label_info("//third_party/boringssl:crypto", "root_out_dir") 193 get_label_info("//third_party/boringssl:crypto", "root_out_dir")
75 crypto_name = get_label_info("//third_party/boringssl:crypto", "name") 194 crypto_name = get_label_info("//third_party/boringssl:crypto", "name")
76 ssl_out = get_label_info("//third_party/boringssl:ssl", "root_out_dir") 195 ssl_out = get_label_info("//third_party/boringssl:ssl", "root_out_dir")
77 ssl_name = get_label_info("//third_party/boringssl:ssl", "name") 196 ssl_name = get_label_info("//third_party/boringssl:ssl", "name")
78 sources = [ 197 sources = [
79 "$crypto_out/lib${crypto_name}.so", 198 "$crypto_out/lib${crypto_name}.so",
80 "$ssl_out/lib${ssl_name}.so", 199 "$ssl_out/lib${ssl_name}.so",
81 ] 200 ]
82 outputs = [ 201 outputs = [
83 "$root_out_dir/dart-sdk/bin/{{source_file_part}}", 202 "$root_out_dir/dart-sdk/bin/{{source_file_part}}",
84 ] 203 ]
85 } 204 }
86 205 }
87 template("copy_sdk_script") { 206
88 assert(defined(invoker.name), "copy_sdk_script must define 'name'") 207 # A template for copying the things in _platform_sdk_scripts and
89 name = invoker.name 208 # _full_sdk_scripts into bin/
90 copy(target_name) { 209 template("copy_sdk_script") {
91 sources = [ 210 assert(defined(invoker.name), "copy_sdk_script must define 'name'")
92 "bin/${name}_sdk", 211 name = invoker.name
93 ] 212 ext = ""
94 outputs = [ 213 if (is_win) {
95 "$root_out_dir/dart-sdk/bin/${name}", 214 ext = ".bat"
96 ] 215 }
216 copy(target_name) {
217 visibility = [ ":copy_platform_sdk_scripts", ":copy_full_sdk_scripts" ]
218 sources = [
219 "bin/${name}_sdk$ext",
220 ]
221 outputs = [
222 "$root_out_dir/dart-sdk/bin/$name$ext",
223 ]
224 }
225 }
226
227 foreach(sdk_script, _full_sdk_scripts) {
228 copy_sdk_script("copy_${sdk_script}_script") {
229 name = sdk_script
230 }
231 }
232
233 foreach(script, _scripts) {
234 copy("copy_${script}_script") {
235 visibility = [ ":copy_platform_sdk_scripts", ":copy_full_sdk_scripts" ]
236 ext = ""
237 if (is_win) {
238 ext = ".bat"
97 } 239 }
98 } 240 sources = [
99 241 "bin/$script$ext",
100 _sdk_scripts = [ 242 ]
101 "dartanalyzer", 243 outputs = [
102 "dartfmt", 244 "$root_out_dir/dart-sdk/bin/{{source_file_part}}",
103 "pub", 245 ]
104 ] 246 }
105 247 }
106 foreach(sdk_script, _sdk_scripts) { 248
107 copy_sdk_script("copy_${sdk_script}_script") { 249 # This is the main target for copying scripts in _platform_sdk_scripts to bin/
108 name = sdk_script 250 group("copy_platform_sdk_scripts") {
109 } 251 visibility = [ ":create_platform_sdk" ]
110 } 252 deps = []
111 253 foreach(sdk_script, _platform_sdk_scripts) {
112 group("copy_scripts") { 254 deps += [ ":copy_${sdk_script}_script" ]
255 }
256 foreach(script, _scripts) {
257 deps += [ ":copy_${script}_script" ]
258 }
259 }
260
261 # This is the main target for copying scripts in _full_sdk_scripts to bin/
262 group("copy_full_sdk_scripts") {
263 visibility = [ ":create_full_sdk" ]
264 deps = []
265 foreach(sdk_script, _full_sdk_scripts) {
266 deps += [ ":copy_${sdk_script}_script" ]
267 }
268 foreach(script, _scripts) {
269 deps += [ ":copy_${script}_script" ]
270 }
271 }
272
273 # This loop generates "copy" targets that put snapshots into bin/snapshots
274 foreach(snapshot, _full_sdk_snapshots) {
275 copy("copy_${snapshot[0]}_snapshot") {
276 visibility = [ ":copy_platform_sdk_snapshots", ":copy_full_sdk_snapshots" ]
113 deps = [ 277 deps = [
114 ":copy_dartanalyzer_script", 278 snapshot[1],
115 ":copy_dartfmt_script",
116 ":copy_pub_script",
117 ]
118 }
119
120 _snapshots = [
121 [
122 "analysis_server",
123 "../utils/analysis_server",
124 ],
125 [
126 "dartanalyzer",
127 "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
128 ],
129 [
130 "dartfmt",
131 "../utils/dartfmt",
132 ],
133 [
134 "pub",
135 "../utils/pub",
136 ],
137 ]
138
139 foreach(snapshot, _snapshots) {
140 copy("copy_${snapshot[0]}_snapshot") {
141 deps = [
142 snapshot[1],
143 ]
144 sources = [
145 "$root_gen_dir/${snapshot[0]}.dart.snapshot",
146 ]
147 outputs = [
148 "$root_out_dir/dart-sdk/bin/snapshots/{{source_file_part}}",
149 ]
150 }
151 }
152
153 group("copy_snapshots") {
154 deps = [
155 ":copy_analysis_server_snapshot",
156 ":copy_dartanalyzer_snapshot",
157 ":copy_dartfmt_snapshot",
158 ":copy_pub_snapshot",
159 ]
160 }
161
162 copy("copy_analysis_summaries") {
163 deps = [
164 ":copy_libraries",
165 "../utils/dartanalyzer:generate_summary_spec",
166 "../utils/dartanalyzer:generate_summary_strong",
167 ] 279 ]
168 sources = [ 280 sources = [
169 "$root_gen_dir/spec.sum", 281 "$root_gen_dir/${snapshot[0]}.dart.snapshot",
170 "$root_gen_dir/strong.sum",
171 ] 282 ]
172 outputs = [ 283 outputs = [
173 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}", 284 "$root_out_dir/dart-sdk/bin/snapshots/{{source_file_part}}",
174 ] 285 ]
175 } 286 }
176 287 }
177 copy("copy_headers") { 288
178 sources = [ 289 # This is the main rule for copying snapshots from _platform_sdk_snapshots to
179 "../runtime/include/dart_api.h", 290 # bin/snapshots
180 "../runtime/include/dart_mirrors_api.h", 291 group("copy_platform_sdk_snapshots") {
181 "../runtime/include/dart_native_api.h", 292 visibility = [ ":create_platform_sdk" ]
182 "../runtime/include/dart_tools_api.h", 293 deps = []
183 ] 294 foreach(snapshot, _platform_sdk_snapshots) {
184 outputs = [ 295 deps += [ ":copy_${snapshot[0]}_snapshot" ]
185 "$root_out_dir/dart-sdk/include/{{source_file_part}}", 296 }
186 ] 297 }
187 } 298
188 299 # This is the main rule for copying snapshots from _full_sdk_snapshots to
189 copy("copy_platform_files") { 300 # bin/snapshots
190 sources = [ 301 group("copy_full_sdk_snapshots") {
191 "lib/dart_client.platform", 302 visibility = [ ":create_full_sdk" ]
192 "lib/dart_server.platform", 303 deps = []
193 "lib/dart_shared.platform", 304 foreach(snapshot, _full_sdk_snapshots) {
194 ] 305 deps += [ ":copy_${snapshot[0]}_snapshot" ]
195 outputs = [ 306 }
196 "$root_out_dir/dart-sdk/lib/{{source_file_part}}", 307 }
197 ] 308
198 } 309 # This loop generates rules for copying analyzer sources into lib/
199 310 foreach(analyzer_source_dir, _analyzer_source_dirs) {
200 copy_tree("copy_pub_assets") { 311 copy_tree("copy_${analyzer_source_dir}_source_dir") {
201 deps = [ 312 visibility = [ ":copy_analyzer_sources" ]
202 ":copy_libraries", 313 source = "../pkg/$analyzer_source_dir"
203 ] 314 dest = "$root_out_dir/dart-sdk/lib/$analyzer_source_dir"
204 source = "../third_party/pkg/pub/lib/src/asset" 315 exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore,packages"
205 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset" 316 }
206 } 317 }
207 318
208 _libraries = [ 319 # This is the main rule for copying analyzer sources to lib/
209 "_internal", 320 group("copy_analyzer_sources") {
210 "async", 321 visibility = [ ":create_common_sdk" ]
211 "collection", 322 deps = []
212 "convert", 323 foreach(analyzer_source_dir, _analyzer_source_dirs) {
213 "core", 324 deps += [ ":copy_${analyzer_source_dir}_source_dir" ]
214 "developer", 325 }
215 "internal", 326 }
216 "io", 327
217 "isolate", 328 # This rule copies dartdoc templates to
218 "math", 329 # bin/snapshots/resources/dartdoc/templates
219 "mirrors", 330 copy_tree("copy_dartdoc_templates") {
220 "profiler", 331 visibility = [ ":copy_dartdoc_files" ]
221 "typed_data", 332 source = "../third_party/pkg/dartdoc/lib/templates"
222 ] 333 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/templates"
223 334 }
224 foreach(library, _libraries) { 335
225 copy_tree("copy_${library}_library") { 336 # This rule copies dartdoc resources to
226 source = "lib/$library" 337 # bin/snapshots/resources/dartdoc/resources
227 dest = "$root_out_dir/dart-sdk/lib/$library" 338 copy_tree("copy_dartdoc_resources") {
228 exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore" 339 visibility = [ ":copy_dartdoc_files" ]
229 } 340 source = "../third_party/pkg/dartdoc/lib/resources"
230 } 341 dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/resources"
231 342 }
232 group("copy_libraries") { 343
233 deps = [ 344 # This rule writes the .packages file for dartdoc resources.
234 ":copy__internal_library", 345 write_file("$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/.packages",
235 ":copy_async_library", 346 "dartdoc:.")
236 ":copy_collection_library", 347
237 ":copy_convert_library", 348 # This is the main rule for copying the files that dartdoc needs.
238 ":copy_core_library", 349 group("copy_dartdoc_files") {
239 ":copy_developer_library", 350 visibility = [ ":create_common_sdk" ]
240 ":copy_internal_library", 351 deps = [
241 ":copy_io_library", 352 ":copy_dartdoc_resources",
242 ":copy_isolate_library", 353 ":copy_dartdoc_templates",
243 ":copy_math_library", 354 ]
244 ":copy_mirrors_library", 355 }
245 ":copy_profiler_library", 356
246 ":copy_typed_data_library", 357 # This rule copies analyzer summaries to lib/_internal
247 ] 358 copy("copy_analysis_summaries") {
248 } 359 visibility = [ ":create_common_sdk" ]
249 360 deps = [
250 action("write_version_file") { 361 ":copy_libraries",
251 output = "$root_out_dir/dart-sdk/version" 362 "../utils/dartanalyzer:generate_summary_spec",
252 outputs = [ 363 "../utils/dartanalyzer:generate_summary_strong",
253 output, 364 ]
254 ] 365 sources = [
255 script = "../tools/write_version_file.py" 366 "$root_gen_dir/spec.sum",
256 args = [ 367 "$root_gen_dir/strong.sum",
257 "--output", 368 ]
258 rebase_path(output), 369 outputs = [
259 ] 370 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
260 } 371 ]
261 372 }
262 action("write_revision_file") { 373
263 output = "$root_out_dir/dart-sdk/revision" 374 # This rule copies ddc summaries to lib/_internal
264 outputs = [ 375 copy("copy_dev_compiler_summary") {
265 output, 376 visibility = [ ":copy_dev_compiler_sdk" ]
266 ] 377 deps = [
267 script = "../tools/write_revision_file.py" 378 ":copy_libraries",
268 args = [ 379 ]
269 "--output", 380 sources = [
270 rebase_path(output), 381 "../pkg/dev_compiler/lib/sdk/ddc_sdk.sum",
271 ] 382 ]
272 } 383 outputs = [
273 384 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
274 copy("copy_readme") { 385 ]
275 sources = [ 386 }
276 "../README.dart-sdk", 387
277 ] 388 # This rule copies js needed by ddc to lib/dev_compiler
278 outputs = [ 389 copy_tree("copy_dev_compiler_js") {
279 "$root_out_dir/dart-sdk/README", 390 visibility = [ ":copy_dev_compiler_sdk", ":copy_dev_compiler_require_js" ]
280 ] 391 source = "../pkg/dev_compiler/lib/js"
281 } 392 dest = "$root_out_dir/dart-sdk/lib/dev_compiler"
282 393 }
283 copy("copy_license") { 394
284 sources = [ 395 # This rule copies require.js to lib/dev_compiler/amd
285 "../LICENSE", 396 copy("copy_dev_compiler_require_js") {
286 ] 397 visibility = [ ":copy_dev_compiler_sdk" ]
287 outputs = [ 398 deps = [
288 "$root_out_dir/dart-sdk/LICENSE", 399 ":copy_dev_compiler_js",
289 ] 400 ]
290 } 401 sources = [
291 402 "../third_party/requirejs/require.js",
292 copy("copy_api_readme") { 403 ]
293 sources = [ 404 outputs = [
294 "api_readme.md", 405 "$root_out_dir/dart-sdk/lib/dev_compiler/amd/{{source_file_part}}",
295 ] 406 ]
296 outputs = [ 407 }
297 "$root_out_dir/dart-sdk/lib/api_readme.md", 408
298 ] 409 # This is the main rule for copying ddc's dependencies to lib/
299 } 410 group("copy_dev_compiler_sdk") {
300 411 visibility = [ ":create_full_sdk" ]
301 group("create_sdk") { 412 deps = [
302 deps = [ 413 ":copy_dev_compiler_js",
303 ":copy_analysis_summaries", 414 ":copy_dev_compiler_require_js",
304 ":copy_api_readme", 415 ":copy_dev_compiler_summary",
305 ":copy_dart", 416 ]
306 ":copy_headers", 417 }
307 ":copy_libraries", 418
308 ":copy_license", 419 # This rule copies header files to include/
309 ":copy_platform_files", 420 copy("copy_headers") {
310 ":copy_pub_assets", 421 visibility = [ ":create_common_sdk" ]
311 ":copy_readme", 422 sources = [
312 ":copy_scripts", 423 "../runtime/include/dart_api.h",
313 ":copy_snapshots", 424 "../runtime/include/dart_mirrors_api.h",
314 ":write_revision_file", 425 "../runtime/include/dart_native_api.h",
315 ":write_version_file", 426 "../runtime/include/dart_tools_api.h",
316 ] 427 ]
317 if (is_fuchsia_host && is_linux) { 428 outputs = [
318 deps += [ ":copy_dylibs" ] 429 "$root_out_dir/dart-sdk/include/{{source_file_part}}",
319 } 430 ]
320 } 431 }
321 } else { 432
322 action("create_sdk") { 433 # This rule copies .platform files to lib/
323 deps = [ 434 copy("copy_platform_files") {
324 "../runtime/bin:dart", 435 visibility = [ ":create_common_sdk" ]
325 "../utils/analysis_server", 436 sources = [
326 "../utils/compiler:dart2js", 437 "lib/dart_client.platform",
327 "../utils/compiler:utils_wrapper", 438 "lib/dart_server.platform",
328 "../utils/dartanalyzer:generate_dartanalyzer_snapshot", 439 "lib/dart_shared.platform",
329 "../utils/dartanalyzer:generate_summary_spec", 440 ]
330 "../utils/dartanalyzer:generate_summary_strong", 441 outputs = [
331 "../utils/dartdevc", 442 "$root_out_dir/dart-sdk/lib/{{source_file_part}}",
332 "../utils/dartdoc", 443 ]
333 "../utils/dartfmt", 444 }
334 "../utils/pub", 445
335 ] 446 # This rule copies pub assets to lib/_internal/pub/asset
336 447 copy_tree("copy_pub_assets") {
337 sdk_lib_files = exec_script("../tools/list_dart_files.py", 448 visibility = [ ":create_common_sdk", ":copy_7zip" ]
338 [ 449 deps = [
339 "absolute", 450 ":copy_libraries",
340 rebase_path("lib"), 451 ]
341 ], 452 source = "../third_party/pkg/pub/lib/src/asset"
342 "list lines") 453 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset"
343 454 }
344 preamble_files = 455
345 exec_script("../tools/list_files.py", 456 # This loop generates rules to copy libraries to lib/
346 [ 457 foreach(library, _full_sdk_libraries) {
347 "absolute", 458 copy_tree("copy_${library}_library") {
348 "", 459 visibility = [ ":copy_platform_sdk_libraries", ":copy_full_sdk_libraries" ]
349 rebase_path("lib/_internal/js_runtime/lib/preambles"), 460 source = "lib/$library"
350 ], 461 dest = "$root_out_dir/dart-sdk/lib/$library"
351 "list lines") 462 exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore"
352 463 }
353 sdk_bin_files = exec_script("../tools/list_files.py", 464 }
354 [ 465
355 "absolute", 466 # This is the main rule to copy libraries in _platform_sdk_libraries to lib/
356 "", 467 group("copy_platform_sdk_libraries") {
357 rebase_path("bin"), 468 visibility = [ ":create_platform_sdk", ":copy_libraries" ]
358 ], 469 deps = []
359 "list lines") 470 foreach(library, _platform_sdk_libraries) {
360 471 deps += [ ":copy_${library}_library" ]
361 inputs = sdk_lib_files + preamble_files + sdk_bin_files + [ 472 }
362 "lib/dart_client.platform", 473 }
363 "lib/dart_server.platform", 474
364 "lib/dart_shared.platform", 475 # This is the main rule to copy libraries in _full_sdk_libraries to lib/
365 "$root_gen_dir/dart2js.dart.snapshot", 476 group("copy_full_sdk_libraries") {
366 "$root_gen_dir/utils_wrapper.dart.snapshot", 477 visibility = [ ":create_full_sdk", ":copy_libraries" ]
367 "$root_gen_dir/pub.dart.snapshot", 478 deps = []
368 "$root_gen_dir/dartanalyzer.dart.snapshot", 479 foreach(library, _full_sdk_libraries) {
369 "$root_gen_dir/dartdevc.dart.snapshot", 480 deps += [ ":copy_${library}_library" ]
370 "$root_gen_dir/dartfmt.dart.snapshot", 481 }
371 "$root_gen_dir/analysis_server.dart.snapshot", 482 }
372 "$root_gen_dir/dartdoc.dart.snapshot", 483
373 "$root_gen_dir/spec.sum", 484 group("copy_libraries") {
374 "$root_gen_dir/strong.sum", 485 if (dart_platform_sdk) {
375 "../tools/VERSION", 486 deps = [ ":copy_platform_sdk_libraries" ]
376 ] 487 } else {
377 488 deps = [ ":copy_full_sdk_libraries" ]
378 outputs = [ 489 }
379 "$root_out_dir/dart-sdk/README", 490 }
380 ] 491
381 492 copy_tree("copy_7zip") {
382 script = "../tools/create_sdk.py" 493 visibility = [ ":create_common_sdk"]
383 args = [ 494 deps = [
384 "--sdk_output_dir", 495 ":copy_libraries",
385 rebase_path("$root_out_dir/dart-sdk"), 496 ":copy_pub_assets",
386 "--snapshot_location", 497 ]
387 rebase_path("$root_gen_dir"), 498 source = "../third_party/7zip"
388 ] 499 dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset/7zip"
389 } 500 }
390 } 501
502 # This rule writes the version file.
503 action("write_version_file") {
504 visibility = [ ":create_common_sdk" ]
505 output = "$root_out_dir/dart-sdk/version"
506 outputs = [
507 output,
508 ]
509 script = "../tools/write_version_file.py"
510 args = [
511 "--output",
512 rebase_path(output),
513 ]
514 }
515
516 # This rule writes the revision file.
517 action("write_revision_file") {
518 visibility = [ ":create_common_sdk" ]
519 output = "$root_out_dir/dart-sdk/revision"
520 outputs = [
521 output,
522 ]
523 script = "../tools/write_revision_file.py"
524 args = [
525 "--output",
526 rebase_path(output),
527 ]
528 }
529
530 # Copy libraries.dart to lib/_internal/libraries.dart for backwards
531 # compatibility.
532 #
533 # TODO(sigmund): stop copying libraries.dart. Old versions (<=0.25.1-alpha.4)
534 # of the analyzer package do not support the new location of this file. We
535 # should be able to remove the old file once we release a newer version of
536 # analyzer and popular frameworks have migrated to use it.
537 copy("copy_libraries_dart") {
538 visibility = [ ":create_common_sdk" ]
539 deps = [
540 ":copy_libraries",
541 ]
542 sources = [
543 "lib/_internal/sdk_library_metadata/lib/libraries.dart",
544 ]
545 outputs = [
546 "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
547 ]
548 }
549
550 # This rule copies the README file.
551 copy("copy_readme") {
552 visibility = [ ":create_common_sdk" ]
553 sources = [
554 "../README.dart-sdk",
555 ]
556 outputs = [
557 "$root_out_dir/dart-sdk/README",
558 ]
559 }
560
561 # This rule copies the LICENSE file.
562 copy("copy_license") {
563 visibility = [ ":create_common_sdk" ]
564 sources = [
565 "../LICENSE",
566 ]
567 outputs = [
568 "$root_out_dir/dart-sdk/LICENSE",
569 ]
570 }
571
572 # This rule copies the API readme file to lib/
573 copy("copy_api_readme") {
574 visibility = [ ":create_common_sdk" ]
575 sources = [
576 "api_readme.md",
577 ]
578 outputs = [
579 "$root_out_dir/dart-sdk/lib/api_readme.md",
580 ]
581 }
582
583 # Parts common to both platform and full SDKs.
584 group("create_common_sdk") {
585 visibility = [ ":create_sdk" ]
586 deps = [
587 ":copy_analysis_summaries",
588 ":copy_analyzer_sources",
589 ":copy_api_readme",
590 ":copy_dart",
591 ":copy_dartdoc_files",
592 ":copy_headers",
593 ":copy_libraries_dart",
594 ":copy_license",
595 ":copy_platform_files",
596 ":copy_pub_assets",
597 ":copy_readme",
598 ":write_revision_file",
599 ":write_version_file",
600 ]
601 if (is_win) {
602 deps += [ ":copy_7zip" ]
603 }
604 if (is_fuchsia_host && is_linux) {
605 deps += [ ":copy_dylibs" ]
606 }
607 }
608
609 # Parts specific to the platform SDK.
610 group("create_platform_sdk") {
611 visibility = [ ":create_sdk" ]
612 deps = [
613 ":copy_platform_sdk_libraries",
614 ":copy_platform_sdk_scripts",
615 ":copy_platform_sdk_snapshots",
616 ]
617 }
618
619 # Parts specific to the full SDK.
620 group("create_full_sdk") {
621 visibility = [ ":create_sdk" ]
622 deps = [
623 ":copy_dev_compiler_sdk",
624 ":copy_full_sdk_libraries",
625 ":copy_full_sdk_scripts",
626 ":copy_full_sdk_snapshots",
627 ]
628 }
629
630 # The main target to depend on from ../BUILD.gn
631 group("create_sdk") {
632 deps = [ ":create_common_sdk" ]
633 if (dart_platform_sdk) {
634 deps += [ ":create_platform_sdk" ]
635 } else {
636 deps += [ ":create_full_sdk" ]
637 }
638 }
OLDNEW
« no previous file with comments | « runtime/vm/BUILD.gn ('k') | tools/create_sdk.py » ('j') | tools/create_sdk.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698