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

Unified Diff: mojo/public/dart/rules.gni

Issue 1312183003: dart_pkg cleanups (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/dart/observatory_test/BUILD.gn ('k') | services/dart/dart_apptests/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/dart/rules.gni
diff --git a/mojo/public/dart/rules.gni b/mojo/public/dart/rules.gni
index f8c7ccb7a4c43dd1a6fb942644c75d46fe2423c4..359c2f99cb78341b63bfa882b549526ff8d3757a 100644
--- a/mojo/public/dart/rules.gni
+++ b/mojo/public/dart/rules.gni
@@ -198,7 +198,9 @@ template("dart_pkg_helper") {
entrypoints = []
if (defined(invoker.apps)) {
- entrypoints += invoker.apps
+ foreach(app, invoker.apps) {
+ entrypoints += [ app[1] ]
+ }
}
if (defined(invoker.libs)) {
entrypoints += invoker.libs
@@ -260,29 +262,37 @@ template("dart_pkg_helper") {
# This is the entrypoint for organizing Dart code for Mojo.
#
-# For each file in |apps|, it makes a .mojo Mojo application using the dartx
-# format as well as an assemblage of the app under $root_gen_dir/part-pkg for
+# There should be a one to one mapping between dart_pkg rules and pubspec.yamls.
+#
+# This build rule will result in a package under $root_gen_dir/dart-pkg/
+#
+# The name of the package is taken from the 'pubspec.yaml' file.
+#
+# For each app in |apps|, it makes a .mojo Mojo application using the dartx
+# format as well as an assemblage of the app under $root_gen_dir/dart-pkg for
# use in local development.
#
-# For each file in |libs|, it invokes the Dart analyzer. All other sources go in
-# |sources|. This should at least contain a 'pubspec.yaml' file. If no |apps|
-# are defined, this rule makes the library package available to applications.
-# The name of the package is taken from the 'pubspec.yaml' file. Even if a
-# package will not be uploaded to pub, an attempt should be made not to conflict
-# with the names of existing pub packages, for example by using the prefix
-# 'mojo_dart_'.
+# For each library in |libs|, it invokes the Dart analyzer on that library. The
+# build will fail if the library is not analyzer clean.
+#
+# All other sources go in |sources|. This should at least contain the
+# 'pubspec.yaml' file.
+#
+# Even if a package will not be uploaded to pub, an attempt should be made not
+# to conflict with the names of existing pub packages, for example by using the
+# prefix 'mojo_dart_'.
#
# sources
-# List of non-app and non-lib sources to include in the package. This
-# should at least contain the pubspec.yaml for the package.
+# List of sources to include in the package. This should at least contain
+# the pubspec.yaml for the package.
#
# apps (optional)
-# List of Mojo application entrypoints containing a main() function.
-# Each of these entrypoints will result in a .mojo Mojo application.
-# See |output_name| for how this application is named.
+# List of pairs. [mojo_app_name, entrypoint.dart]. Each entrypoint
+# script must contain a main() function. A .mojo Mojo application will be
+# generated for each application.
#
# libs (optional)
-# List of package entrypoints to pass to the analyzer. If none are
+# List of library entrypoints to pass to the analyzer. If none are
# defined, the analyzer is not run.
#
# strict (optional)
@@ -290,12 +300,6 @@ template("dart_pkg_helper") {
# instruct the content handler to run the apps in Dart VM's strict
# compilation mode (with assertions and type-checks, etc.).
#
-# app_name_override (optional)
-# When |apps| are specified, this is the prefix to use for the
-# name of the assembled .mojo file. The target name is used by default.
-# For each entrypoint, the result is |output_name|_|entrypoint|.mojo. If
-# the entrypoint is main.dart, the result is simply |output_name|.mojo.
-#
# deps (optional)
# List of other dart_pkg targets for Dart packages imported by this
# dart_pkg, as well as the mojom targets needed by this dart_pkg.
@@ -363,21 +367,14 @@ template("dart_pkg") {
}
if (defined(invoker.apps)) {
- pkg_name = target_name
- if (defined(invoker.app_name_override)) {
- pkg_name = invoker.app_name_override
- }
pkg_helper_output_dir = "$root_gen_dir/dart-pkg/${dart_package_name}"
- foreach(entrypoint, invoker.apps) {
- entrypoint_name = get_path_info(entrypoint, "name")
- dartx_target_name = "${pkg_name}_${entrypoint_name}"
- dartx_output_name = dartx_target_name
- if (entrypoint_name == "main") {
- dartx_output_name = pkg_name
- }
- dartx_application(dartx_target_name) {
+ foreach(app, invoker.apps) {
+ app_name = app[0]
+ app_entrypoint = app[1]
+ dartx_output_name = app_name
+ dartx_application("${app_name}_dart_app") {
output_name = dartx_output_name
- main_dart = rebase_path(entrypoint, "", pkg_helper_output_dir)
+ main_dart = rebase_path(app_entrypoint, "", pkg_helper_output_dir)
sources = rebase_path(invoker.sources, "", pkg_helper_output_dir)
deps = [
":$dart_pkg_target_name",
@@ -395,13 +392,9 @@ template("dart_pkg") {
":$dart_pkg_target_name",
]
if (defined(invoker.apps)) {
- pkg_name = target_name
- if (defined(invoker.app_name_override)) {
- pkg_name = invoker.app_name_override
- }
- foreach(entrypoint, invoker.apps) {
- entrypoint_name = get_path_info(entrypoint, "name")
- dartx_target_name = "${pkg_name}_${entrypoint_name}"
+ foreach(app, invoker.apps) {
+ app_name = app[0]
+ dartx_target_name = "${app_name}_dart_app"
deps += [ ":$dartx_target_name" ]
}
}
« no previous file with comments | « mojo/dart/observatory_test/BUILD.gn ('k') | services/dart/dart_apptests/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698