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

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

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 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/public/dart/.gitignore ('k') | mojo/public/dart/tools/fetch_dart_packages.py » ('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
deleted file mode 100644
index dfaa947ea038e4aad14a6fc2c38a42ac03a21410..0000000000000000000000000000000000000000
--- a/mojo/public/dart/rules.gni
+++ /dev/null
@@ -1,440 +0,0 @@
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file has rules for making Dart packages and Dart-based Mojo applications.
-# The entrypoint is the dart_pkg rule.
-
-import("../mojo.gni")
-import("//build/module_args/mojo.gni")
-import("//build/module_args/dart.gni")
-
-template("dartx") {
- bundle_prefix = target_name
- bundle = "$target_gen_dir/${bundle_prefix}.dartx"
- snapshot = "$target_gen_dir/${bundle_prefix}_snapshot.bin"
- depfile_path = "${snapshot}.d"
-
- if (mojo_use_prebuilt_dart_snapshotter) {
- dart_snapshotter_path =
- rebase_path("mojo/public/tools:copy_dart_snapshotter", ".", mojo_root)
- dart_snapshotter_rule = "$dart_snapshotter_path($host_toolchain)"
- } else {
- dart_snapshotter_rule = dart_snapshotter_bin
- }
- dart_snapshotter_dir =
- get_label_info("$dart_snapshotter_rule", "root_out_dir")
- dart_snapshotter = "$dart_snapshotter_dir/dart_snapshotter"
-
- action("gen_${bundle_prefix}_snapshot") {
- main_dart = invoker.main_dart
-
- depfile = depfile_path
-
- inputs = [
- dart_snapshotter,
- ]
- outputs = [
- snapshot,
- ]
-
- if (defined(invoker.sources)) {
- sources = invoker.sources
- }
-
- script =
- rebase_path("mojo/public/tools/dart_snapshotter.py", ".", mojo_sdk_root)
-
- args = [
- rebase_path(dart_snapshotter),
- rebase_path(main_dart),
- "--package-root",
- rebase_path("$root_gen_dir/dart-pkg/packages"),
- "--snapshot",
- rebase_path(snapshot),
- "--depfile",
- rebase_path(depfile_path),
- "--build-output",
- rebase_path(snapshot, root_build_dir), # Relative to build directory
- ]
-
- deps = [
- dart_snapshotter_rule,
- ]
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
- }
-
- action("gen_${bundle_prefix}_bundle") {
- sources = [
- rebase_path("mojo/public/tools/dartx.py", ".", mojo_sdk_root),
- snapshot,
- ]
-
- outputs = [
- bundle,
- ]
-
- script = rebase_path("mojo/public/tools/dartx.py", ".", mojo_sdk_root)
- args = [
- "--snapshot",
- rebase_path(snapshot),
- "--output",
- rebase_path(bundle),
- ]
-
- deps = [
- ":gen_${bundle_prefix}_snapshot",
- ]
- }
-
- group(target_name) {
- public_deps = [
- ":gen_${bundle_prefix}_bundle",
- ]
- }
-}
-
-template("dartx_application") {
- dartx_name = "${target_name}_dartx"
-
- dartx(dartx_name) {
- main_dart = invoker.main_dart
- if (defined(invoker.sources)) {
- sources = invoker.sources
- }
- if (defined(invoker.deps)) {
- deps = invoker.deps
- }
- }
-
- if (defined(invoker.output_name)) {
- mojo_output = "$root_out_dir/" + invoker.output_name + ".mojo"
- } else {
- mojo_output = "$root_out_dir/" + target_name + ".mojo"
- }
-
- action(target_name) {
- script = rebase_path("mojo/public/tools/prepend.py", ".", mojo_sdk_root)
-
- input = "$target_gen_dir/${dartx_name}.dartx"
- inputs = [
- input,
- ]
-
- output = mojo_output
- outputs = [
- output,
- ]
-
- deps = [
- ":$dartx_name",
- ]
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
-
- line = "#!mojo mojo:dart_content_handler"
- if (is_debug || (defined(invoker.strict) && invoker.strict == true)) {
- line = "#!mojo mojo:dart_content_handler?strict=true"
- }
-
- rebase_input = rebase_path(input, root_build_dir)
- rebase_output = rebase_path(output, root_build_dir)
- args = [
- "--input=$rebase_input",
- "--output=$rebase_output",
- "--line=$line",
- ]
- }
-}
-
-template("dart_pkg_helper") {
- assert(defined(invoker.package_name))
- package_name = invoker.package_name
- 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"
- entries_file = "$root_gen_dir/dart-pkg/${package_name}.entries"
-
- assert(defined(invoker.sources) || defined(invoker.apps) ||
- defined(invoker.libs) || defined(invoker.pkg_dir))
-
- action(target_name) {
- deps = []
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
-
- datadeps = []
- if (defined(invoker.datadeps)) {
- datadeps += invoker.datadeps
- }
-
- sdk_ext_directory = []
- if (defined(invoker.sdk_ext_directory)) {
- sdk_ext_directory += [ invoker.sdk_ext_directory ]
- }
-
- sdk_ext_files = []
- if (defined(invoker.sdk_ext_files)) {
- sdk_ext_files += invoker.sdk_ext_files
- }
-
- sdk_ext_mappings = []
- if (defined(invoker.sdk_ext_mappings)) {
- sdk_ext_mappings += invoker.sdk_ext_mappings
- }
-
- script = rebase_path("mojo/public/tools/dart_pkg.py", ".", mojo_sdk_root)
-
- entrypoints = []
- if (defined(invoker.apps)) {
- foreach(app, invoker.apps) {
- entrypoints += [ app[1] ]
- }
- }
- if (defined(invoker.libs)) {
- entrypoints += invoker.libs
- }
-
- sources = entrypoints
- extra_flags = []
- if (defined(invoker.sources)) {
- sources += invoker.sources
- } else if (defined(invoker.pkg_dir)) {
- list_script = rebase_path("mojo/public/tools/ls.py", ".", mojo_sdk_root)
- extra_flags += [ "--read_only" ]
- ls_sources = exec_script(list_script,
- [
- "--target-directory",
- rebase_path(invoker.pkg_dir),
- ],
- "list lines")
- sources += ls_sources
- }
-
- # We have to use foreach to set up outputs instead of rebase_path because
- # GN doesn't like assignments to outputs that aren't obviously under
- # $root_gen_dir somewhere.
- outputs = [
- "$root_gen_dir/dart-pkg/${package_name}",
- "$root_gen_dir/dart-pkg/packages/${package_name}",
- stamp_file,
- ]
-
- inputs = [ script ] + rebase_path(sources)
-
- args = [
- "--package-name",
- package_name,
- "--dart-sdk",
- rebase_path(dart_sdk_root),
- "--pkg-directory",
- pkg_directory,
- "--package-root",
- package_root,
- "--stamp-file",
- rebase_path(stamp_file),
- "--entries-file",
- rebase_path(entries_file),
- "--package-sources",
- ] + rebase_path(sources) + [ "--package-entrypoints" ] +
- rebase_path(entrypoints) + [ "--sdk-ext-directories" ] +
- rebase_path(sdk_ext_directory) + [ "--sdk-ext-files" ] +
- rebase_path(sdk_ext_files) + [ "--sdk-ext-mappings" ] +
- sdk_ext_mappings + extra_flags
- }
-}
-
-# This is the entrypoint for organizing Dart code for Mojo.
-#
-# 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 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 sources to include in the package. This should at least contain
-# the pubspec.yaml for the package.
-#
-# apps (optional)
-# 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 library entrypoints to pass to the analyzer. If none are
-# defined, the analyzer is not run.
-#
-# strict (optional)
-# If |apps| are specified, |strict| can be set to true to
-# instruct the content handler to run the apps in Dart VM's strict
-# compilation mode (with assertions and type-checks, etc.).
-#
-# 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.
-#
-# pkg_dir (optional)
-# Directory containing the package sources. This overrides sources and
-# entrypoints. The analyzer will not be run.
-#
-# datadeps (optional)
-#
-# sdk_ext_directory (optional)
-# Directory containing sdk-ext .dart sources.
-#
-# sdk_ext_files (optional)
-# List of sources to include in sdk-ext.
-#
-# sdk_ext_mappings (optional)
-# Mappings for dart libraries that are part of of sdk_ext.
-template("dart_pkg") {
- if (defined(invoker.pkg_dir)) {
- pubspec_yaml_path = rebase_path("pubspec.yaml", "", invoker.pkg_dir)
- } else {
- pubspec_yaml_path = rebase_path("pubspec.yaml")
- }
- dart_package_name_script =
- rebase_path("mojo/public/tools/dart_package_name.py", ".", mojo_sdk_root)
- dart_package_name = exec_script(dart_package_name_script,
- [
- "--pubspec",
- pubspec_yaml_path,
- ],
- "trim string",
- [ pubspec_yaml_path ])
-
- dart_pkg_target_name = "${target_name}_pkg_helper"
- dart_pkg_helper(dart_pkg_target_name) {
- package_name = dart_package_name
- if (defined(invoker.sources)) {
- sources = invoker.sources
- }
- if (defined(invoker.apps)) {
- apps = invoker.apps
- }
- if (defined(invoker.libs)) {
- libs = invoker.libs
- }
- if (defined(invoker.pkg_dir)) {
- pkg_dir = invoker.pkg_dir
- }
- if (defined(invoker.deps)) {
- deps = invoker.deps
- }
- if (defined(invoker.datadeps)) {
- datadeps = invoker.datadeps
- }
- if (defined(invoker.sdk_ext_directory)) {
- sdk_ext_directory = invoker.sdk_ext_directory
- }
- if (defined(invoker.sdk_ext_files)) {
- sdk_ext_files = invoker.sdk_ext_files
- }
- if (defined(invoker.sdk_ext_mappings)) {
- sdk_ext_mappings = invoker.sdk_ext_mappings
- }
- }
-
- if (defined(invoker.apps)) {
- pkg_helper_output_dir = "$root_gen_dir/dart-pkg/${dart_package_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(app_entrypoint, "", pkg_helper_output_dir)
- sources = [
- "$root_gen_dir/dart-pkg/${dart_package_name}.stamp",
- ]
- deps = [
- ":$dart_pkg_target_name",
- ]
- deps += invoker.deps
- if (defined(invoker.strict)) {
- strict = invoker.strict
- }
- }
- }
- }
-
- group(target_name) {
- deps = [
- ":$dart_pkg_target_name",
- ]
- if (defined(invoker.apps)) {
- foreach(app, invoker.apps) {
- app_name = app[0]
- dartx_target_name = "${app_name}_dart_app"
- deps += [ ":$dartx_target_name" ]
- }
- }
- }
-}
-
-# Used to create dart_pkgs from a directory populated by fetch_dart_packages.py
-#
-# This build rule will result in a many packages under $root_gen_dir/dart-pkg/.
-#
-# base_dir (optional)
-# Directory populated by fetch_dart_packages.py. Defaults to BUILD.gn
-# directory.
-template("dart_packages") {
- base_dir = "."
- if (defined(invoker.base_dir)) {
- base_dir = invoker.base_dir
- }
-
- # Determine list of packages.
- list_script = rebase_path("mojo/public/dart/tools/fetch_dart_packages.py",
- ".",
- mojo_sdk_root)
- packages = exec_script(list_script,
- [
- "--directory",
- rebase_path(base_dir),
- "--list",
- ],
- "list lines",
- [
- rebase_path("pubspec.yaml"),
- rebase_path("pubspec.lock"),
- ])
-
- # Generate dart_pkg for each package.
- foreach(package_dir, packages) {
- dart_pkg("$package_dir") {
- pkg_dir = rebase_path("$package_dir")
- }
- }
-
- # Generate target group.
- group(target_name) {
- deps = []
- foreach(package_dir, packages) {
- deps += [ ":$package_dir" ]
- }
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
- }
-}
« no previous file with comments | « mojo/public/dart/.gitignore ('k') | mojo/public/dart/tools/fetch_dart_packages.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698