| Index: third_party/mojo/src/mojo/public/dart/rules.gni
|
| diff --git a/third_party/mojo/src/mojo/public/dart/rules.gni b/third_party/mojo/src/mojo/public/dart/rules.gni
|
| index 930a8967711a7e6997ec86eacdda4d559b5d98c1..03b17b18f958a04b9f75f61fcdabc89f334beb93 100644
|
| --- a/third_party/mojo/src/mojo/public/dart/rules.gni
|
| +++ b/third_party/mojo/src/mojo/public/dart/rules.gni
|
| @@ -2,11 +2,12 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| -# Rules to generate python packaged applications for Dart
|
| +# Rules to generate zipped applications for Dart.
|
| +# Rules to generate dart-pkg and dart-pkg/packages.
|
|
|
| import("//build/module_args/mojo.gni")
|
|
|
| -template("dart_package") {
|
| +template("dartzip_package") {
|
| package_target_name = "$target_name"
|
| package_output = "$target_out_dir/$target_name.dartzip"
|
|
|
| @@ -16,6 +17,11 @@ template("dart_package") {
|
| target_dir = get_label_info(":$target_name", "dir")
|
| script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_sdk_root)
|
|
|
| + package_name = "$package_target_name"
|
| + if (defined(invoker.package_name_override)) {
|
| + package_name = invoker.package_name_override
|
| + }
|
| +
|
| # Get a list of the files in packages/ as inputs.
|
| list_packages_contents_script =
|
| rebase_path("mojo/public/tools/dart_list_packages_contents.py",
|
| @@ -26,6 +32,8 @@ template("dart_package") {
|
| [
|
| "--target-directory",
|
| rebase_target_dir,
|
| + "--package-name",
|
| + package_name,
|
| ],
|
| "list lines",
|
| [ target_dir + "/pubspec.lock" ])
|
| @@ -36,7 +44,7 @@ template("dart_package") {
|
| outputs = [
|
| output,
|
| ]
|
| - rebase_base_dir = rebase_target_dir + "/packages"
|
| + rebase_base_dir = rebase_target_dir
|
| rebase_inputs = rebase_path(inputs, root_build_dir)
|
| rebase_output = rebase_path(output, root_build_dir)
|
| args = [
|
| @@ -48,7 +56,8 @@ template("dart_package") {
|
| }
|
|
|
| action("${package_target_name}_package") {
|
| - script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_sdk_root)
|
| + script =
|
| + rebase_path("mojo/public/tools/dart_package.py", ".", mojo_sdk_root)
|
|
|
| inputs = invoker.sources
|
|
|
| @@ -86,6 +95,7 @@ template("dart_package") {
|
| rebase_inputs = rebase_path(inputs, root_build_dir)
|
| rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir)
|
| rebase_output = rebase_path(output, root_build_dir)
|
| +
|
| args = [
|
| "--base-dir=$rebase_base_dir",
|
| "--inputs=$rebase_inputs",
|
| @@ -107,7 +117,7 @@ template("dart_package") {
|
| rebase_path("$target_gen_dir/${package_target_name}_analyze.stamp"),
|
| "--no-hints",
|
| "--url-mapping=dart:mojo.io,/" +
|
| - rebase_path("mojo/public/dart/io.dart", "/", mojo_sdk_root),
|
| + rebase_path("mojo/public/dart/lib/io.dart", "/", mojo_sdk_root),
|
| ]
|
|
|
| deps = [
|
| @@ -131,8 +141,8 @@ template("dart_package") {
|
| # files should be named main.dart and contain a main function as the
|
| # entry point. Dependencies of dart_packaged_application targets should be
|
| # either mojom targets (and specified using the mojom_deps variable) or
|
| -# dart_package targets.
|
| -template("dart_packaged_application") {
|
| +# dartzip_package targets.
|
| +template("dartzip_packaged_application") {
|
| package_name = "${target_name}_package"
|
| package_output = "$target_out_dir/$package_name.dartzip"
|
|
|
| @@ -142,7 +152,7 @@ template("dart_packaged_application") {
|
| mojo_output = "$root_out_dir/" + target_name + ".mojo"
|
| }
|
|
|
| - dart_package(package_name) {
|
| + dartzip_package(package_name) {
|
| sources = invoker.sources
|
| if (defined(invoker.deps)) {
|
| deps = invoker.deps
|
| @@ -198,3 +208,93 @@ template("dart_packaged_application") {
|
| ]
|
| }
|
| }
|
| +
|
| +# Creates a gen/dart-pkg/package_name directory containing symlinks to package
|
| +# sources. Also copies any mojom dependencies into lib/mojom.
|
| +#
|
| +# sources
|
| +# List of sources to include in the package.
|
| +#
|
| +# deps (optional)
|
| +# Note: this can only contain mojom targets.
|
| +#
|
| +# datadeps (optional)
|
| +#
|
| +# sdk_ext_directory (optional)
|
| +# Directory containing sdk-ext .dart sources.
|
| +#
|
| +template("dart_pkg") {
|
| + pubspec_yaml_path = rebase_path("pubspec.yaml")
|
| + dart_package_name_script =
|
| + rebase_path("mojo/public/tools/dart_package_name.py", ".", mojo_sdk_root)
|
| + package_name = exec_script(dart_package_name_script,
|
| + [
|
| + "--pubspec",
|
| + pubspec_yaml_path,
|
| + ],
|
| + "trim string",
|
| + [ pubspec_yaml_path ])
|
| +
|
| + pkg_directory = rebase_path("$root_gen_dir/dart-pkg")
|
| + package_root = rebase_path("$root_gen_dir/dart-pkg/packages")
|
| + stamp_file = "$root_gen_dir/dart-pkg/${package_name}.stamp"
|
| +
|
| + assert(defined(invoker.sources))
|
| +
|
| + action(target_name) {
|
| + deps = []
|
| + if (defined(invoker.deps)) {
|
| + deps += invoker.deps
|
| + }
|
| +
|
| + datadeps = []
|
| + if (defined(invoker.datadeps)) {
|
| + datadeps += invoker.datadeps
|
| + }
|
| +
|
| + list_mojoms_script =
|
| + rebase_path("mojo/public/tools/dart_list_mojoms.py", ".", mojo_sdk_root)
|
| + mojom_sources = []
|
| + foreach(d, deps) {
|
| + root_prefix = rebase_path(".", "", mojo_sdk_root)
|
| + source_directory = rebase_path(get_label_info(d, "dir"))
|
| + mojom_sources += exec_script(list_mojoms_script,
|
| + [
|
| + source_directory,
|
| + root_prefix,
|
| + ],
|
| + "list lines")
|
| + }
|
| +
|
| + sdk_ext_directory = []
|
| + if (defined(invoker.sdk_ext_directory)) {
|
| + sdk_ext_directory += [ invoker.sdk_ext_directory ]
|
| + }
|
| +
|
| + script = rebase_path("mojo/public/tools/dart_pkg.py", ".", mojo_sdk_root)
|
| + outputs = [
|
| + stamp_file,
|
| + ]
|
| +
|
| + inputs = [
|
| + list_mojoms_script,
|
| + script,
|
| + ] + rebase_path(invoker.sources)
|
| +
|
| + args = [
|
| + "--package-name",
|
| + package_name,
|
| + "--gen-directory",
|
| + rebase_path("$root_gen_dir/dart-gen"),
|
| + "--pkg-directory",
|
| + pkg_directory,
|
| + "--package-root",
|
| + package_root,
|
| + "--stamp-file",
|
| + rebase_path(stamp_file),
|
| + "--package-sources",
|
| + ] + rebase_path(invoker.sources) + [ "--mojom-sources" ] +
|
| + rebase_path(mojom_sources, "", mojo_sdk_root) +
|
| + [ "--sdk-ext-directories" ] + rebase_path(sdk_ext_directory)
|
| + }
|
| +}
|
|
|