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

Side by Side Diff: mojo/public/dart/rules.gni

Issue 1132063007: Rationalize Dart mojo and sky package structure (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 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 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 # Rules to generate python packaged applications for Dart 5 # Rules to generate python packaged applications for Dart.
6 # Rules to generate dart-pkg and dart-pkg/packages.
6 7
7 import("//build/module_args/mojo.gni") 8 import("//build/module_args/mojo.gni")
8 9
9 template("dart_package") { 10 template("dart_package") {
10 package_target_name = "$target_name" 11 package_target_name = "$target_name"
11 package_output = "$target_out_dir/$target_name.dartzip" 12 package_output = "$target_out_dir/$target_name.dartzip"
12 13
13 if (defined(invoker.uses_pub) && invoker.uses_pub) { 14 if (defined(invoker.uses_pub) && invoker.uses_pub) {
14 # Repackage all dependencies pulled in via "pub get" in a dartzip file. 15 # Repackage all dependencies pulled in via "pub get" in a dartzip file.
15 action("${package_target_name}_repackage") { 16 action("${package_target_name}_repackage") {
16 target_dir = get_label_info(":$target_name", "dir") 17 target_dir = get_label_info(":$target_name", "dir")
17 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_sdk_root) 18 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_sdk_root)
18 19
20 package_name = "$package_target_name"
21 if (defined(invoker.package_name_override)) {
22 package_name = invoker.package_name_override
23 }
24
19 # Get a list of the files in packages/ as inputs. 25 # Get a list of the files in packages/ as inputs.
20 list_packages_contents_script = 26 list_packages_contents_script =
21 rebase_path("mojo/public/tools/dart_list_packages_contents.py", 27 rebase_path("mojo/public/tools/dart_list_packages_contents.py",
22 ".", 28 ".",
23 mojo_sdk_root) 29 mojo_sdk_root)
24 rebase_target_dir = rebase_path(target_dir, root_build_dir) 30 rebase_target_dir = rebase_path(target_dir, root_build_dir)
25 inputs = exec_script(list_packages_contents_script, 31 inputs = exec_script(list_packages_contents_script,
26 [ 32 [
27 "--target-directory", 33 "--target-directory",
28 rebase_target_dir, 34 rebase_target_dir,
35 "--package-name",
36 package_name,
29 ], 37 ],
30 "list lines", 38 "list lines",
31 [ target_dir + "/pubspec.lock" ]) 39 [ target_dir + "/pubspec.lock" ])
32 40
33 # Zip up all the pulled-in files relative to their location in the 41 # Zip up all the pulled-in files relative to their location in the
34 # packages dir. 42 # packages dir.
35 output = "$target_out_dir/$target_name.dartzip" 43 output = "$target_out_dir/$target_name.dartzip"
36 outputs = [ 44 outputs = [
37 output, 45 output,
38 ] 46 ]
39 rebase_base_dir = rebase_target_dir + "/packages" 47 rebase_base_dir = rebase_target_dir
40 rebase_inputs = rebase_path(inputs, root_build_dir) 48 rebase_inputs = rebase_path(inputs, root_build_dir)
41 rebase_output = rebase_path(output, root_build_dir) 49 rebase_output = rebase_path(output, root_build_dir)
42 args = [ 50 args = [
43 "--base-dir=$rebase_base_dir", 51 "--base-dir=$rebase_base_dir",
44 "--inputs=$rebase_inputs", 52 "--inputs=$rebase_inputs",
45 "--output=$rebase_output", 53 "--output=$rebase_output",
46 ] 54 ]
47 } 55 }
48 } 56 }
49 57
50 action("${package_target_name}_package") { 58 action("${package_target_name}_package") {
51 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_sdk_root) 59 script =
60 rebase_path("mojo/public/tools/dart_package.py", ".", mojo_sdk_root)
52 61
53 inputs = invoker.sources 62 inputs = invoker.sources
54 63
55 deps = [] 64 deps = []
56 zip_inputs = [] 65 zip_inputs = []
57 66
58 if (defined(invoker.uses_pub) && invoker.uses_pub) { 67 if (defined(invoker.uses_pub) && invoker.uses_pub) {
59 deps += [ ":${package_target_name}_repackage" ] 68 deps += [ ":${package_target_name}_repackage" ]
60 } 69 }
61 70
(...skipping 17 matching lines...) Expand all
79 88
80 rebase_base_dir = 89 rebase_base_dir =
81 rebase_path(get_label_info(":$package_target_name", "dir"), 90 rebase_path(get_label_info(":$package_target_name", "dir"),
82 root_build_dir) 91 root_build_dir)
83 if (defined(invoker.base_dir)) { 92 if (defined(invoker.base_dir)) {
84 rebase_base_dir = invoker.base_dir 93 rebase_base_dir = invoker.base_dir
85 } 94 }
86 rebase_inputs = rebase_path(inputs, root_build_dir) 95 rebase_inputs = rebase_path(inputs, root_build_dir)
87 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir) 96 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir)
88 rebase_output = rebase_path(output, root_build_dir) 97 rebase_output = rebase_path(output, root_build_dir)
98
89 args = [ 99 args = [
90 "--base-dir=$rebase_base_dir", 100 "--base-dir=$rebase_base_dir",
91 "--inputs=$rebase_inputs", 101 "--inputs=$rebase_inputs",
92 "--zip-inputs=$rebase_zip_inputs", 102 "--zip-inputs=$rebase_zip_inputs",
93 "--output=$rebase_output", 103 "--output=$rebase_output",
94 ] 104 ]
95 } 105 }
96 106
97 action(target_name) { 107 action(target_name) {
98 script = 108 script =
99 rebase_path("mojo/public/tools/dart_analyze.py", ".", mojo_sdk_root) 109 rebase_path("mojo/public/tools/dart_analyze.py", ".", mojo_sdk_root)
100 110
101 sources = [ 111 sources = [
102 package_output, 112 package_output,
103 ] 113 ]
104 114
105 args = [ 115 args = [
106 rebase_path(package_output), 116 rebase_path(package_output),
107 rebase_path("$target_gen_dir/${package_target_name}_analyze.stamp"), 117 rebase_path("$target_gen_dir/${package_target_name}_analyze.stamp"),
108 "--no-hints", 118 "--no-hints",
109 "--url-mapping=dart:mojo.io,/" + 119 "--url-mapping=dart:mojo.io,/" +
110 rebase_path("mojo/public/dart/io.dart", "/", mojo_sdk_root), 120 rebase_path("mojo/public/dart/lib/io.dart", "/", mojo_sdk_root),
111 ] 121 ]
112 122
113 deps = [ 123 deps = [
114 ":${package_target_name}_package", 124 ":${package_target_name}_package",
115 ] 125 ]
116 if (defined(invoker.deps)) { 126 if (defined(invoker.deps)) {
117 deps += invoker.deps 127 deps += invoker.deps
118 } 128 }
119 129
120 if (defined(invoker.datadeps)) { 130 if (defined(invoker.datadeps)) {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 201
192 rebase_input = rebase_path(input, root_build_dir) 202 rebase_input = rebase_path(input, root_build_dir)
193 rebase_output = rebase_path(output, root_build_dir) 203 rebase_output = rebase_path(output, root_build_dir)
194 args = [ 204 args = [
195 "--input=$rebase_input", 205 "--input=$rebase_input",
196 "--output=$rebase_output", 206 "--output=$rebase_output",
197 "--line=$line", 207 "--line=$line",
198 ] 208 ]
199 } 209 }
200 } 210 }
211
212 # Creates a gen/dart-pkg/package_name directory containing symlinks to package
213 # sources. Also copies any mojom dependencies into lib/mojom.
214 #
215 # sources (optional if one of the deps sets listed below is present)
216 # List of source .mojom files to compile.
217 #
218 # sources
219 # List of sources to include in the package.
220 #
221 # deps (optional)
222 # Note: this can contain only other mojom targets.
223 #
224 # public_deps (optional)
225 # Note: this can contain only other mojom targets.
226 #
227 template("dart_pkg") {
228 pubspec_yaml_path = rebase_path("pubspec.yaml")
229 dart_package_name_script =
230 rebase_path("mojo/public/tools/dart_package_name.py", ".", mojo_sdk_root)
231 package_name = exec_script(dart_package_name_script,
232 [
233 "--pubspec",
234 pubspec_yaml_path,
235 ],
236 "trim string",
237 [ pubspec_yaml_path ])
238
239 pkg_directory = rebase_path("$root_gen_dir/dart-pkg")
240 package_root = rebase_path("$root_gen_dir/dart-pkg/packages")
241 stamp_file = "$root_gen_dir/dart-pkg/${package_name}.stamp"
242
243 assert(defined(invoker.sources))
244
245 action(target_name) {
246 deps = []
247 if (defined(invoker.deps)) {
248 deps += invoker.deps
249 }
250
251 datadeps = []
252 if (defined(invoker.datadeps)) {
253 datadeps += invoker.datadeps
254 }
255
256 mojom_sources = []
257 foreach(d, deps) {
258 list_mojoms_script = rebase_path("mojo/public/tools/dart_list_mojoms.py",
259 ".",
260 mojo_sdk_root)
261 root_prefix = rebase_path(".", "", mojo_sdk_root)
262 source_directory = rebase_path(get_label_info(d, "dir"))
263 mojom_sources += exec_script(list_mojoms_script,
264 [
265 source_directory,
266 root_prefix,
267 ],
268 "list lines")
269 }
270
271 script = rebase_path("mojo/public/tools/dart_pkg.py", ".", mojo_sdk_root)
272 outputs = [
273 stamp_file,
274 ]
275
276 args = [
277 "--package-name",
278 package_name,
279 "--gen-directory",
280 rebase_path("$root_gen_dir/dart-gen"),
281 "--pkg-directory",
282 pkg_directory,
283 "--package-root",
284 package_root,
285 "--stamp-file",
286 rebase_path(stamp_file),
287 "--package-sources",
288 ] + rebase_path(invoker.sources) + [ "--mojom-sources" ] +
289 rebase_path(mojom_sources, "", mojo_sdk_root)
290 }
291 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698