dart-sdk/BUILD.gn
Zach Anderson 736ddd9b0e [Observatory] Refactor observatory build to prepare for Fuchsia prebuilt
This splits create_archive.py into two steps. One that creates the .tar
and one that creates the .cc for the .tar. This way on Fuchsia, the
second step will take the prebuilt instead of building it.

Change-Id: I7f407f9e70db3135884eeeb61aa5aec3091f1fcc
Reviewed-on: https://dart-review.googlesource.com/56291
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-05-29 16:35:34 +00:00

190 lines
3.8 KiB
Plaintext

# 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",
]
}
}