# 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_host_toolchain.gni") # This target will be built if no target is specified when invoking ninja. group("default") { if (is_fuchsia || is_fuchsia_host) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ ":runtime", ] } group("most") { if (is_fuchsia || is_fuchsia_host) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ ":analysis_server", ":create_sdk", ":dart2js", ":dartanalyzer", ":dartdevc", ":runtime", ":samples", ] } group("runtime") { if (is_fuchsia || is_fuchsia_host) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ "runtime/bin:dart", "runtime/bin:dart_bootstrap($dart_host_toolchain)", "runtime/bin:process_test", "runtime/bin:run_vm_tests", "runtime/bin:sample_extension", "runtime/bin:test_extension", "runtime/vm:patched_sdk", ] } group("runtime_kernel") { if (is_fuchsia || is_fuchsia_host) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ ":runtime", # TODO(rmacnak): Link this into 'dart'. "utils/kernel-service:kernel-service", ] } group("runtime_precompiled") { deps = [ "runtime/bin:dart_bootstrap($dart_host_toolchain)", "runtime/bin:dart_precompiled_runtime", "runtime/bin:process_test", "runtime/vm:patched_sdk", ] } group("create_sdk") { deps = [ "sdk:create_sdk", ] } 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", ] } # The rules below build a Fuchsia OS image that includes the Dart tree # under /system/test/dart. if (is_fuchsia) { action("generate_dart_test_manifest") { testonly = true deps = [ "//packages/gn:mkbootfs", ] output_prefix = "$target_gen_dir/dart_test_tree" outputs = [ "$output_prefix.manifest", ] mode = "release" if (is_debug) { mode = "debug" } mkbootfs_gen = get_label_info("//packages/gn:mkbootfs", "target_gen_dir") system_manifest = "$mkbootfs_gen/system.bootfs.manifest" script = "tools/gen_fuchsia_test_manifest.py" args = [ "-m", mode, "-u", rebase_path(system_manifest), "-o", rebase_path(output_prefix), ] } action("generate_dart_test_image") { testonly = true deps = [ ":generate_dart_test_manifest", "runtime/bin:dart", "runtime/bin:process_test", "runtime/bin:run_vm_tests", ] mkbootfs_gen = get_label_info("//packages/gn:mkbootfs", "target_gen_dir") boot_manifest = "$mkbootfs_gen/boot.bootfs.manifest" # Compute path to magenta bootdata.bin if (current_cpu == "arm64") { magenta_bootdata = "//out/build-magenta/build-magenta-qemu-arm64/bootdata.bin" } else if (current_cpu == "x64") { magenta_bootdata = "//out/build-magenta/build-magenta-pc-x86-64/bootdata.bin" } else { assert(false, "unable to determine path to magenta's bootdata.bin") } input = "$target_gen_dir/dart_test_tree.manifest" inputs = [ magenta_bootdata, input, ] output = "$root_out_dir/dart_test_tree.bin" outputs = [ output, ] script = "//packages/gn/make_bootfs.py" args = [ "--boot-manifest", rebase_path(boot_manifest), "--system-manifest", rebase_path(input), "--output-file", rebase_path(output), "--build-id-map", rebase_path("$target_gen_dir/build_id_map"), "--pre-binaries", rebase_path(magenta_bootdata), ] } }