blob: a0094562e537060c76ad2467586c794a30319d72 [file] [log] [blame]
# 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.
# This target will be built if no target is specified when invoking ninja.
group("default") {
if (defined(is_fuchsia) && (is_fuchsia || is_fuchsia_host)) {
# Fuchsia has run_vm_tests marked testonly.
testonly = true
}
deps = [
":runtime",
]
}
group("most") {
if (defined(is_fuchsia) && (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 (defined(is_fuchsia) && (is_fuchsia || is_fuchsia_host)) {
# 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",
"runtime/vm:patched_sdk",
]
}
group("runtime_kernel") {
if (defined(is_fuchsia) && (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($host_toolchain)",
"runtime/bin:dart_precompiled_runtime",
"runtime/bin:process_test",
"runtime/vm:patched_sdk",
]
}
action("create_sdk") {
deps = [
"runtime/bin:dart",
"utils/analysis_server",
"utils/compiler:dart2js",
"utils/compiler:utils_wrapper",
"utils/dartanalyzer:generate_dartanalyzer_snapshot",
"utils/dartanalyzer:generate_summary_spec",
"utils/dartanalyzer:generate_summary_strong",
"utils/dartdevc",
"utils/dartdoc",
"utils/dartfmt",
"utils/pub",
]
sdk_lib_files = exec_script("tools/list_dart_files.py",
[
"absolute",
rebase_path("sdk/lib"),
],
"list lines")
preamble_files =
exec_script("tools/list_files.py",
[
"absolute",
"",
rebase_path("sdk/lib/_internal/js_runtime/lib/preambles"),
],
"list lines")
sdk_bin_files = exec_script("tools/list_files.py",
[
"absolute",
"",
rebase_path("sdk/bin"),
],
"list lines")
inputs = sdk_lib_files + preamble_files + sdk_bin_files + [
"sdk/lib/dart_client.platform",
"sdk/lib/dart_server.platform",
"sdk/lib/dart_shared.platform",
"$root_gen_dir/dart2js.dart.snapshot",
"$root_gen_dir/utils_wrapper.dart.snapshot",
"$root_gen_dir/pub.dart.snapshot",
"$root_gen_dir/dartanalyzer.dart.snapshot",
"$root_gen_dir/dartdevc.dart.snapshot",
"$root_gen_dir/dartfmt.dart.snapshot",
"$root_gen_dir/analysis_server.dart.snapshot",
"$root_gen_dir/dartdoc.dart.snapshot",
"$root_gen_dir/spec.sum",
"$root_gen_dir/strong.sum",
"tools/VERSION",
]
outputs = [
"$root_out_dir/dart-sdk/README",
]
script = "tools/create_sdk.py"
args = [
"--sdk_output_dir",
rebase_path("$root_out_dir/dart-sdk"),
"--snapshot_location",
rebase_path("$root_gen_dir"),
]
if (defined(is_fuchsia) && is_fuchsia_host) {
args += [ "--copy_libs" ]
}
if (defined(is_fuchsia) && (is_fuchsia || is_fuchsia_host)) {
# The binaries are already stripped.
args += [ "--disable_stripping" ]
}
}
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 qemu Fuchsia OS image that includes the Dart tree
# under /system/test/dart. Building this image is gated by the GN argument
# 'dart_build_fuchsia_test_image' because building the image is slow.
if (defined(is_fuchsia) && is_fuchsia) {
declare_args() {
dart_build_fuchsia_test_image = false
}
if (dart_build_fuchsia_test_image) {
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")
user_manifest = "$mkbootfs_gen/user.bootfs.manifest"
script = "tools/gen_fuchsia_test_manifest.py"
args = [
"-m",
mode,
"-u",
rebase_path(user_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",
]
# 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 = [
"--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),
]
}
}
}