dart-sdk/BUILD.gn
Jake Ehrlich 7ffef4c616 [llvm] Make sure llvm groups don't break the build
This change makes it so that the llvm targets are empty on builds that
do not checkout llvm. Without this GN will perform certian sanity checks
against the build and those sanity checks will cause GN to fail when
those files are missing for one reason or another. Additionally if one
trys to build with the 'all' target in ninja these groups would fail at
build time even in posix systems like linux and mac where those sanity
checks pass even if the rules would still be bogus. All of these issues
go away if we make these groups no-ops when they would be bogus.

Change-Id: Iac973ff16a4b7258067a5d847da30e05c374969a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111521
Commit-Queue: Jake Ehrlich <jakehehrlich@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Aart Bik <ajcbik@google.com>
2019-07-31 20:29:11 +00:00

174 lines
3.4 KiB
Text

# 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/config/gclient_args.gni")
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",
]
if (checkout_llvm) {
deps += [
":llvm_codegen"
]
}
}
group("most") {
import("runtime/runtime_args.gni")
if (targetting_fuchsia) {
# Fuchsia has run_vm_tests marked testonly.
testonly = true
}
deps = [
":create_sdk",
":dart2js",
":dartanalyzer",
":dartdevc",
":runtime",
":samples",
]
if (dart_target_arch != "arm") {
deps += [ ":analysis_server" ]
}
}
group("runtime") {
import("runtime/runtime_args.gni")
if (targetting_fuchsia) {
# Fuchsia has run_vm_tests marked testonly.
testonly = true
}
deps = [
"runtime/bin:dart",
"runtime/bin:process_test",
"runtime/bin:run_vm_tests",
"runtime/bin:sample_extension",
"runtime/bin:test_extension",
"runtime/bin:entrypoints_verification_test_extension",
"runtime/bin:ffi_test_dynamic_library",
"runtime/bin:ffi_test_functions",
"runtime/vm:kernel_platform_files($host_toolchain)",
"utils/kernel-service:kernel-service",
]
}
group("runtime_kernel") {
if (targetting_fuchsia) {
# Fuchsia has run_vm_tests marked testonly.
testonly = true
}
deps = [
":runtime",
]
}
group("runtime_precompiled") {
deps = [
"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",
]
}
group("check_llvm") {
if (checkout_llvm) {
deps = [
"runtime/llvm_codegen/test",
]
}
}
group("llvm_codegen") {
if (checkout_llvm) {
deps = [
"runtime/llvm_codegen/codegen",
"runtime/llvm_codegen/bit",
]
}
}
# 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",
]
}
# This rule and the compressed_observatory_archive rule are for the Fuchsia
# bots that pre-build the Observatory. They copy the observatory tar files to
# the root build output directory for convenient access by the Fuchsia buildbot
# scripts.
group("observatory_archive") {
deps = [
"runtime/observatory:copy_observatory_archive",
]
}
group("compressed_observatory_archive") {
deps = [
"runtime/observatory:copy_compressed_observatory_archive",
]
}