| # 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. |
| |
| import("../../build/dart/dart_host_sdk_toolchain.gni") |
| import("../../build/dart/prebuilt_dart_sdk.gni") |
| import("../../build/executable_suffix.gni") |
| import("observatory_sources.gni") |
| |
| # Construct arguments to the observatory tool for finding pub. |
| build_deps = [] |
| build_args = [] |
| if (!prebuilt_dart_exe_works) { |
| build_deps += [ "../bin:dart_bootstrap($dart_host_toolchain)" ] |
| |
| dart_out_dir = get_label_info("../bin:dart_bootstrap($dart_host_toolchain)", |
| "root_out_dir") |
| dart_bootstrap = rebase_path("$dart_out_dir/dart_bootstrap$executable_suffix") |
| |
| build_args = [ |
| "--sdk=True", |
| "--dart-executable", |
| dart_bootstrap, |
| ] |
| } else { |
| build_args = [ "--sdk=True" ] |
| } |
| |
| current_dir = rebase_path(".", "//") |
| |
| action("build_observatory") { |
| deps = build_deps |
| |
| sources = rebase_path(observatory_sources, "", ".") |
| |
| inputs = sources + [ rebase_path("dart2js.packages") ] |
| |
| script = "../../tools/observatory_tool.py" |
| args = build_args + [ |
| "--silent=True", |
| "--directory", |
| rebase_path("."), |
| "--command", |
| "build", |
| rebase_path("web/main.dart"), |
| rebase_path("$target_gen_dir/observatory/web/main.dart.js"), |
| rebase_path("dart2js.packages"), |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/observatory/web/main.dart.js", |
| ] |
| } |
| |
| action("deploy_observatory") { |
| deps = [ ":build_observatory" ] + build_deps |
| |
| script = "../../tools/observatory_tool.py" |
| |
| inputs = [ |
| script, |
| "$target_gen_dir/observatory/web/main.dart.js", |
| ] |
| |
| args = build_args + [ |
| "--silent=True", |
| "--directory", |
| rebase_path("$target_out_dir/observatory"), |
| "--command", |
| "deploy", |
| rebase_path("$target_out_dir/observatory/deployed"), |
| rebase_path("web"), |
| rebase_path("lib"), |
| rebase_path("$target_gen_dir/observatory/web/main.dart.js"), |
| rebase_path("../../third_party/observatory_pub_packages/packages"), |
| ] |
| |
| outputs = [ |
| "$target_out_dir/observatory/deployed/web/main.dart.js", |
| ] |
| } |
| |
| template("observatory_archive") { |
| enable_compression = false |
| if (defined(invoker.compress) && invoker.compress) { |
| enable_compression = true |
| } |
| action(target_name) { |
| deps = [ |
| ":deploy_observatory", |
| ] |
| |
| inputs = [ |
| "$target_out_dir/observatory/deployed/web/main.dart.js", |
| ] |
| |
| output_name = target_name |
| |
| output = "$target_gen_dir/${output_name}.tar" |
| outputs = [ |
| output, |
| ] |
| |
| script = "../tools/create_archive.py" |
| args = [ |
| "--tar_output", |
| rebase_path(output), |
| "--client_root", |
| rebase_path("$target_out_dir/observatory/deployed/web/"), |
| ] |
| if (enable_compression) { |
| args += [ "--compress" ] |
| } |
| } |
| } |
| |
| observatory_archive("compressed_observatory_archive") { |
| compress = true |
| } |
| |
| copy("copy_compressed_observatory_archive") { |
| archive_target = ":compressed_observatory_archive" |
| deps = [ |
| archive_target, |
| ] |
| archive_dir = get_label_info(archive_target, "target_gen_dir") |
| archive_name = get_label_info(archive_target, "name") |
| archive_file = "${archive_dir}/${archive_name}.tar" |
| sources = [ |
| archive_file, |
| ] |
| outputs = [ |
| "$root_out_dir/${archive_name}.tar", |
| ] |
| } |
| |
| observatory_archive("observatory_archive") { |
| compress = false |
| } |
| |
| copy("copy_observatory_archive") { |
| archive_target = ":observatory_archive" |
| deps = [ |
| archive_target, |
| ] |
| archive_dir = get_label_info(archive_target, "target_gen_dir") |
| archive_name = get_label_info(archive_target, "name") |
| archive_file = "${archive_dir}/${archive_name}.tar" |
| sources = [ |
| archive_file, |
| ] |
| outputs = [ |
| "$root_out_dir/${archive_name}.tar", |
| ] |
| } |
| |
| # Generates a .cc file containing the bytes of the observatory archive in a C |
| # array. |
| # |
| # Parameters: |
| # inner_namespace (required): |
| # The inner C++ namespace that the C array lives in. |
| # |
| # outer_namespace (required): |
| # The outer C++ namespace that the C array lives in. |
| # |
| # archive_file (required): |
| # The path to the observatory archive. |
| # |
| template("observatory_archive_source") { |
| assert(defined(invoker.inner_namespace), |
| "Need inner_namespace in $target_name") |
| assert(defined(invoker.outer_namespace), |
| "Need outer_namespace in $target_name") |
| assert(defined(invoker.archive_file), "Need archive_file in $target_name") |
| |
| action(target_name) { |
| forward_variables_from(invoker, [ "deps" ]) |
| |
| inputs = [ |
| invoker.archive_file, |
| ] |
| |
| output = "$target_gen_dir/${target_name}.cc" |
| outputs = [ |
| output, |
| ] |
| |
| script = "../tools/create_archive.py" |
| args = [ |
| "--tar_input", |
| rebase_path(invoker.archive_file), |
| "--output", |
| rebase_path(output), |
| "--outer_namespace", |
| invoker.outer_namespace, |
| "--inner_namespace", |
| invoker.inner_namespace, |
| "--name", |
| "observatory_assets_archive", |
| ] |
| } |
| } |
| |
| observatory_archive_source("embedded_archive_observatory") { |
| outer_namespace = "dart" |
| inner_namespace = "observatory" |
| |
| # TODO(zra): In a Fuchsia build, use a prebuilt Observatory archive. |
| archive_target = ":observatory_archive" |
| deps = [ |
| archive_target, |
| ] |
| archive_dir = get_label_info(archive_target, "target_gen_dir") |
| archive_name = get_label_info(archive_target, "name") |
| archive_file = "${archive_dir}/${archive_name}.tar" |
| } |
| |
| source_set("embedded_observatory_archive") { |
| deps = [ |
| ":embedded_archive_observatory", |
| ] |
| |
| sources = [ |
| rebase_path("$target_gen_dir/embedded_archive_observatory.cc"), |
| ] |
| } |
| |
| observatory_archive_source("standalone_archive_observatory") { |
| outer_namespace = "dart" |
| inner_namespace = "bin" |
| |
| # TODO(zra): In a Fuchsia build, use a prebuilt Observatory archive. |
| archive_target = ":compressed_observatory_archive" |
| deps = [ |
| archive_target, |
| ] |
| archive_dir = get_label_info(archive_target, "target_gen_dir") |
| archive_name = get_label_info(archive_target, "name") |
| archive_file = "${archive_dir}/${archive_name}.tar" |
| } |
| |
| source_set("standalone_observatory_archive") { |
| deps = [ |
| ":standalone_archive_observatory", |
| ] |
| |
| sources = [ |
| rebase_path("$target_gen_dir/standalone_archive_observatory.cc"), |
| ] |
| } |