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

Unified Diff: runtime/observatory/BUILD.gn

Issue 2464153003: GN: Fall back on dart_bootstrap where appropriate. (Closed)
Patch Set: Address comments Created 4 years, 1 month 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 | « no previous file | runtime/vm/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/observatory/BUILD.gn
diff --git a/runtime/observatory/BUILD.gn b/runtime/observatory/BUILD.gn
index 5058eed80c26854096b03f541a929d7435b98d50..4978c1ab6b6d374c74d48f160a4cdcbd2a0cebae 100644
--- a/runtime/observatory/BUILD.gn
+++ b/runtime/observatory/BUILD.gn
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("../../utils/invoke_dart.gni")
+
# Currently paths here are hard coded for convenience in building Mojo/Flutter.
declare_args() {
# Specify the path to a host compatible version of the Dart SDK.
@@ -10,9 +12,40 @@ declare_args() {
# Specify the path to a host compatible version of pub.
# This is used to compile the Observatory frontend sources.
+ #
+ # The observatory build tool searches for pub first using this GN arg, then
+ # for the checked-in SDK, and if that doesn't work, it uses the dart_bootstrap
+ # built as part of the build to invoke pub. If this arg is set to a non-empty
+ # string, we assume that there is no need for dart_bootstrap. If it is set to
+ # "", then we assume that there may be a need for dart_bootstrap.
dart_host_pub_exe = rebase_path("$dart_host_sdk/bin/pub")
}
+# Construct arguments to the observatory tool for finding pub.
+pub_build_deps = []
+pub_build_args = []
+if (dart_host_pub_exe != "") {
+ pub_build_args = [
+ "--pub-executable",
+ dart_host_pub_exe,
+ ]
+} else {
+ pub_build_deps += [ "../bin:dart_bootstrap($host_toolchain)" ]
+
+ dart_out_dir =
+ get_label_info("../bin:dart_bootstrap($host_toolchain)", "root_out_dir")
+ dart_bootstrap =
+ rebase_path("$dart_out_dir/dart_bootstrap$dart_executable_suffix")
+
+ pub_build_args = [
+ "--sdk=True",
+ "--dart-executable",
+ dart_bootstrap,
+ ]
+}
+
+current_dir = rebase_path(".", "//")
+
# Helper build rules for packaging the Dart observatory resources.
observatory_sources_gypi =
exec_script("../../tools/gypi_to_gn.py",
@@ -28,30 +61,25 @@ copy("copy_observatory") {
}
action("write_observatory_pubspec_yaml") {
- deps = [
- ":copy_observatory",
- ]
-
- script = "../../tools/observatory_tool.py"
+ deps = [ ":copy_observatory" ] + pub_build_deps
inputs = [
rebase_path("pubspec.yaml"),
]
- current_dir = rebase_path(".", "//")
- args = [
- "--silent=True",
- "--pub-executable",
- dart_host_pub_exe,
- "--directory",
- rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
- "--command",
- "rewrite",
- rebase_path("../observatory/pubspec.yaml"),
- rebase_path("$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml"),
- "../../third_party/",
- rebase_path("../../third_party/"),
- ]
+ script = "../../tools/observatory_tool.py"
+ args =
+ pub_build_args + [
+ "--silent=True",
+ "--directory",
+ rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
+ "--command",
+ "rewrite",
+ rebase_path("../observatory/pubspec.yaml"),
+ rebase_path("$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml"),
+ "../../third_party/",
+ rebase_path("../../third_party/"),
+ ]
outputs = [
"$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml",
@@ -59,29 +87,23 @@ action("write_observatory_pubspec_yaml") {
}
action("copy_observatory_deps") {
- deps = [
- ":write_observatory_pubspec_yaml",
- ]
-
- script = "../../tools/observatory_tool.py"
+ deps = [ ":write_observatory_pubspec_yaml" ] + pub_build_deps
- current_dir = rebase_path(".", "//")
inputs = [
- script,
"$root_gen_dir/observatory_copy/$current_dir/pubspec.yaml",
]
- args = [
- "--silent=True",
- "--pub-executable",
- dart_host_pub_exe,
- "--stamp",
- rebase_path("$root_gen_dir/observatory_copy/$current_dir/packages.stamp"),
- "--directory",
- rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
- "--command",
- "get",
- ]
+ script = "../../tools/observatory_tool.py"
+ args = pub_build_args + [
+ "--silent=True",
+ "--stamp",
+ rebase_path(
+ "$root_gen_dir/observatory_copy/$current_dir/packages.stamp"),
+ "--directory",
+ rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
+ "--command",
+ "get",
+ ]
outputs = [
"$root_gen_dir/observatory_copy/$current_dir/packages.stamp",
@@ -89,34 +111,27 @@ action("copy_observatory_deps") {
}
action("pub_build_observatory") {
- current_dir = rebase_path(".", "//")
+ deps = [
+ ":copy_observatory",
+ ":copy_observatory_deps",
+ ] + pub_build_deps
+
sources = rebase_path(observatory_sources_gypi.sources,
"",
"$root_gen_dir/observatory_copy/$current_dir")
- deps = [
- ":copy_observatory",
- ":copy_observatory_deps",
- ]
+ inputs =
+ sources + [ "$root_gen_dir/observatory_copy/$current_dir/packages.stamp" ]
script = "../../tools/observatory_tool.py"
-
- inputs = [
- script,
- "$root_gen_dir/observatory_copy/$current_dir/packages.stamp",
- ]
- inputs += sources
-
- args = [
- "--silent=True",
- "--pub-executable",
- dart_host_pub_exe,
- "--directory",
- rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
- "--command",
- "build",
- rebase_path("$root_out_dir/observatory/build"),
- ]
+ args = pub_build_args + [
+ "--silent=True",
+ "--directory",
+ rebase_path("$root_gen_dir/observatory_copy/$current_dir/"),
+ "--command",
+ "build",
+ rebase_path("$root_out_dir/observatory/build"),
+ ]
outputs = [
"$root_out_dir/observatory/build/web/main.dart.js",
@@ -124,9 +139,7 @@ action("pub_build_observatory") {
}
action("deploy_observatory") {
- deps = [
- ":pub_build_observatory",
- ]
+ deps = [ ":pub_build_observatory" ] + pub_build_deps
script = "../../tools/observatory_tool.py"
@@ -135,15 +148,13 @@ action("deploy_observatory") {
"$root_out_dir/observatory/build/web/main.dart.js",
]
- args = [
- "--silent=True",
- "--pub-executable",
- dart_host_pub_exe,
- "--directory",
- rebase_path("$root_out_dir/observatory"),
- "--command",
- "deploy",
- ]
+ args = pub_build_args + [
+ "--silent=True",
+ "--directory",
+ rebase_path("$root_out_dir/observatory"),
+ "--command",
+ "deploy",
+ ]
outputs = [
"$root_out_dir/observatory/deployed/web/main.dart.js",
@@ -164,16 +175,15 @@ template("observatory_archive") {
":deploy_observatory",
]
- script = "../tools/create_archive.py"
-
inputs = [
- script,
"$root_out_dir/observatory/deployed/web/main.dart.js",
]
inner_namespace = invoker.inner_namespace
outer_namespace = invoker.outer_namespace
output_name = target_name
+
+ script = "../tools/create_archive.py"
args = [
"--output",
rebase_path("$root_gen_dir/observatory/${output_name}.cc"),
« no previous file with comments | « no previous file | runtime/vm/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698