Index: mojo/public/dart/rules.gni |
diff --git a/mojo/public/dart/rules.gni b/mojo/public/dart/rules.gni |
index e8d7c7274be59b03a7f21ebfc6465a88281de9cc..304f2f627cd6601c43027c356addece5d65f68d4 100644 |
--- a/mojo/public/dart/rules.gni |
+++ b/mojo/public/dart/rules.gni |
@@ -63,15 +63,16 @@ template("dart_packaged_application") { |
mojo_output = "$root_out_dir/" + target_name + ".mojo" |
} |
- action_foreach(package_analyze_sources) { |
- sources = invoker.sources |
- |
+ action(package_analyze_sources) { |
script = rebase_path("mojo/public/tools/dart_analyze.py", ".", mojo_root) |
+ sources = [ |
+ package_output, |
+ ] |
+ |
args = [ |
- rebase_path(root_gen_dir), |
- rebase_path("$target_gen_dir/{{source_name_part}}.stamp"), |
- "{{source}}", |
+ rebase_path(package_output), |
+ rebase_path("$target_gen_dir/${target_name}_analyze.stamp"), |
"--no-hints", |
"--url-mapping=mojo:application,/" + |
rebase_path("mojo/public/dart/application.dart", "/", mojo_root), |
@@ -81,6 +82,22 @@ template("dart_packaged_application") { |
rebase_path("mojo/dart/embedder/builtin.dart", "/", mojo_root), |
"--url-mapping=mojo:core,/" + |
rebase_path("mojo/public/dart/core.dart", "/", mojo_root), |
+ |
+ # The dart bindings refer to the autogenerated application interface in |
+ # their source code; since that code is then packaged into the image, we |
+ # need to manually resolve these package urls to the autogenerated code. |
+ "--url-mapping=package:mojo/public/interfaces/application/application.mojom.dart,/" + rebase_path( |
+ "mojo/public/interfaces/application/application.mojom.dart", |
+ "/", |
+ root_gen_dir + mojo_root), |
+ "--url-mapping=package:mojo/public/interfaces/application/service_provider.mojom.dart,/" + rebase_path( |
+ "mojo/public/interfaces/application/service_provider.mojom.dart", |
+ "/", |
+ root_gen_dir + mojo_root), |
+ "--url-mapping=package:mojo/public/interfaces/application/shell.mojom.dart,/" + rebase_path( |
+ "mojo/public/interfaces/application/shell.mojom.dart", |
+ "/", |
+ root_gen_dir + mojo_root), |
] |
if (defined(invoker.deps)) { |
@@ -92,7 +109,7 @@ template("dart_packaged_application") { |
} |
outputs = [ |
- "$target_gen_dir/{{source_name_part}}.stamp", |
+ "$target_gen_dir/${target_name}_analyze.stamp", |
] |
} |
@@ -123,9 +140,7 @@ template("dart_packaged_application") { |
] |
deps = [ |
- # TODO(erg): When dartanalyze runs at an acceptable speed, add |
- # ":$package_analyze_sources" as a dependency here and remove the |
- # manual group("check") in the toplevel build file. |
+ ":$package_analyze_sources", |
":$package_name", |
] |
if (defined(invoker.deps)) { |