| # Copyright (c) 2016, the Dart project authors.  Please see the AUTHORS file | 
 | # for details. 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") | 
 |  | 
 | targetting_fuchsia = target_os == "fuchsia" | 
 |  | 
 | # This target will be built if no target is specified when invoking ninja. | 
 | group("default") { | 
 |   if (targetting_fuchsia) { | 
 |     # Fuchsia has run_vm_tests marked testonly. | 
 |     testonly = true | 
 |   } | 
 |   deps = [ | 
 |     ":runtime_kernel", | 
 |   ] | 
 | } | 
 |  | 
 | group("most") { | 
 |   if (targetting_fuchsia) { | 
 |     # Fuchsia has run_vm_tests marked testonly. | 
 |     testonly = true | 
 |   } | 
 |   deps = [ | 
 |     ":analysis_server", | 
 |     ":create_sdk", | 
 |     ":dart2js", | 
 |     ":dartanalyzer", | 
 |     ":dartdevc", | 
 |     ":runtime", | 
 |     ":samples", | 
 |   ] | 
 | } | 
 |  | 
 | group("runtime") { | 
 |   if (targetting_fuchsia) { | 
 |     # Fuchsia has run_vm_tests marked testonly. | 
 |     testonly = true | 
 |   } | 
 |   deps = [ | 
 |     "runtime/bin:dart", | 
 |     "runtime/bin:dart_bootstrap($host_toolchain)", | 
 |     "runtime/bin:process_test", | 
 |     "runtime/bin:run_vm_tests", | 
 |     "runtime/bin:sample_extension", | 
 |     "runtime/bin:test_extension", | 
 |   ] | 
 | } | 
 |  | 
 | group("runtime_kernel") { | 
 |   import("runtime/runtime_args.gni") | 
 |  | 
 |   target_supports_aot = dart_target_arch == "arm" || dart_target_arch == "arm64" || dart_target_arch == "x64" | 
 |  | 
 |   if (targetting_fuchsia) { | 
 |     # Fuchsia has run_vm_tests marked testonly. | 
 |     testonly = true | 
 |   } | 
 |   deps = [ | 
 |     ":runtime", | 
 |     "runtime/vm:kernel_platform_files($host_toolchain)", | 
 |  | 
 |     # TODO(rmacnak): Link this into 'dart'. | 
 |     "utils/kernel-service:copy_kernel_service_snapshot", | 
 |     "utils/kernel-service:kernel-service", | 
 |   ] | 
 |  | 
 |   if (target_supports_aot) { | 
 |     deps += ["runtime/bin:precompiler_entry_points_json"] | 
 |   } | 
 | } | 
 |  | 
 | group("runtime_precompiled") { | 
 |   deps = [ | 
 |     "runtime/bin:dart_bootstrap($host_toolchain)", | 
 |     "runtime/bin:dart_precompiled_runtime", | 
 |     "runtime/bin:process_test", | 
 |   ] | 
 | } | 
 |  | 
 | group("create_sdk") { | 
 |   public_deps = [ | 
 |     "sdk:create_sdk", | 
 |   ] | 
 | } | 
 |  | 
 | if (defined(dart_host_sdk_toolchain) && | 
 |     dart_host_sdk_toolchain != host_toolchain) { | 
 |   group("create_host_sdk") { | 
 |     deps = [ | 
 |       "sdk:create_sdk($dart_host_sdk_toolchain)", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | group("dart2js") { | 
 |   deps = [ | 
 |     "utils/compiler:dart2js", | 
 |   ] | 
 | } | 
 |  | 
 | group("dartanalyzer") { | 
 |   deps = [ | 
 |     "utils/dartanalyzer", | 
 |   ] | 
 | } | 
 |  | 
 | group("dartdevc") { | 
 |   deps = [ | 
 |     "utils/dartdevc", | 
 |   ] | 
 | } | 
 |  | 
 | group("dartfmt") { | 
 |   deps = [ | 
 |     "utils/dartfmt", | 
 |   ] | 
 | } | 
 |  | 
 | group("analysis_server") { | 
 |   deps = [ | 
 |     "utils/analysis_server", | 
 |   ] | 
 | } | 
 |  | 
 | # This is the target that is built on the dart2js build bots. | 
 | # It must depend on anything that is required by the dart2js | 
 | # test suites. | 
 | group("dart2js_bot") { | 
 |   deps = [ | 
 |     ":create_sdk", | 
 |   ] | 
 | } | 
 |  | 
 | group("samples") { | 
 |   deps = [ | 
 |     "runtime/bin:sample_extension", | 
 |   ] | 
 | } | 
 |  | 
 | group("observatory_archive") { | 
 |   deps = [ | 
 |     "runtime/observatory:observatory_archive" | 
 |   ] | 
 | } | 
 |  | 
 | # The rules below build a Fuchsia OS image that includes the Dart tree | 
 | # under /system/test/dart.  To get this into the `user.bootfs` generated | 
 | # by the Fuchsia build, add the GN build argument: | 
 | #   extra_bootdata = [ "//third_party/dart:dart_test_bootfs" ] | 
 | if (is_fuchsia) { | 
 |   import("//build/config/fuchsia/bootdata.gni") | 
 |  | 
 |   action("generate_dart_test_manifest") { | 
 |     testonly = true | 
 |  | 
 |     output_prefix = "$target_gen_dir/dart_test_tree" | 
 |     outputs = [ | 
 |       "$output_prefix.manifest", | 
 |     ] | 
 |  | 
 |     mode = "release" | 
 |     if (is_debug) { | 
 |       mode = "debug" | 
 |     } | 
 |  | 
 |     script = "tools/gen_fuchsia_test_manifest.py" | 
 |     args = [ | 
 |       "-m", | 
 |       mode, | 
 |       "-o", | 
 |       rebase_path(output_prefix), | 
 |     ] | 
 |   } | 
 |  | 
 |   bootdata("dart_test_bootfs") { | 
 |     testonly = true | 
 |     deps = [ | 
 |       ":generate_dart_test_manifest", | 
 |       "runtime/bin:dart", | 
 |       "runtime/bin:process_test", | 
 |       "runtime/bin:run_vm_tests", | 
 |     ] | 
 |     inputs = [ | 
 |       "$target_gen_dir/dart_test_tree.manifest", | 
 |     ] | 
 |   } | 
 | } |