mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 05:40:21 +00:00
[GN] Adds dart_host_sdk_toolchain argument
Setting this build argument to something other than host_toolchain will cause the build target create_host_sdk to be exposed. That target will build the Dart SDK with the toolchain specified by dart_host_sdk_toolchain. TO-549 Change-Id: Ida92521724cf7af34b34fb8c6d3514a226c48dd4 Reviewed-on: https://dart-review.googlesource.com/18145 Reviewed-by: Zach Anderson <zra@google.com> Commit-Queue: Zach Anderson <zra@google.com>
This commit is contained in:
parent
f09c86d0d5
commit
8fc90bd3bc
10
BUILD.gn
10
BUILD.gn
|
@ -2,6 +2,8 @@
|
|||
# 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_sdk_toolchain.gni")
|
||||
|
||||
# This target will be built if no target is specified when invoking ninja.
|
||||
group("default") {
|
||||
if (is_fuchsia || is_fuchsia_host) {
|
||||
|
@ -72,6 +74,14 @@ group("create_sdk") {
|
|||
]
|
||||
}
|
||||
|
||||
if (dart_host_sdk_toolchain != host_toolchain) {
|
||||
group("create_host_sdk") {
|
||||
deps = [
|
||||
"sdk:create_sdk($dart_host_sdk_toolchain)",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
group("dart2js") {
|
||||
deps = [
|
||||
"utils/compiler:dart2js",
|
||||
|
|
|
@ -66,6 +66,8 @@
|
|||
# saves unnecessarily compiling your tool for the target platform. But if you
|
||||
# need a target build of your tool as well, just leave off the if statement.
|
||||
|
||||
import("dart_host_sdk_toolchain.gni")
|
||||
|
||||
if (host_os == "win") {
|
||||
_host_executable_suffix = ".exe"
|
||||
} else {
|
||||
|
@ -97,7 +99,7 @@ template("compiled_action") {
|
|||
outputs = invoker.outputs
|
||||
|
||||
# Constuct the host toolchain version of the tool.
|
||||
host_tool = invoker.tool + "($host_toolchain)"
|
||||
host_tool = invoker.tool + "($dart_host_toolchain)"
|
||||
|
||||
# Get the path to the executable. Currently, this assumes that the tool
|
||||
# does not specify output_name so that the target name is the name to use.
|
||||
|
@ -150,7 +152,7 @@ template("compiled_action_foreach") {
|
|||
outputs = invoker.outputs
|
||||
|
||||
# Constuct the host toolchain version of the tool.
|
||||
host_tool = invoker.tool + "($host_toolchain)"
|
||||
host_tool = invoker.tool + "($dart_host_toolchain)"
|
||||
|
||||
# Get the path to the executable. Currently, this assumes that the tool
|
||||
# does not specify output_name so that the target name is the name to use.
|
||||
|
|
18
build/dart_host_sdk_toolchain.gni
Normal file
18
build/dart_host_sdk_toolchain.gni
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Copyright (c) 2017, 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.
|
||||
|
||||
declare_args() {
|
||||
# In a cross-build, this should be set to the toolchain to use to build a Dart
|
||||
# SDK to run on the host that targets the host. This is distinct from
|
||||
# 'host_toolchain', which in a cross-build builds artifacts to run on the host
|
||||
# that target the target architecture.
|
||||
dart_host_sdk_toolchain = host_toolchain
|
||||
}
|
||||
|
||||
# dart_host_toolchain should be used in the Dart tree instead of host_toolchain.
|
||||
# It will ensure that we are selecting the correct host toolchain.
|
||||
dart_host_toolchain = host_toolchain
|
||||
if (current_toolchain == dart_host_sdk_toolchain) {
|
||||
dart_host_toolchain = dart_host_sdk_toolchain
|
||||
}
|
|
@ -2,6 +2,7 @@
|
|||
# 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_sdk_toolchain.gni")
|
||||
import("runtime_args.gni")
|
||||
|
||||
config("dart_public_config") {
|
||||
|
@ -55,6 +56,7 @@ config("dart_no_snapshot_config") {
|
|||
config("dart_os_config") {
|
||||
defines = []
|
||||
|
||||
if (current_toolchain != dart_host_sdk_toolchain) {
|
||||
if (target_os == "android") {
|
||||
defines += [ "TARGET_OS_ANDROID" ]
|
||||
} else if (target_os == "fuchsia") {
|
||||
|
@ -73,10 +75,12 @@ config("dart_os_config") {
|
|||
assert(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config("dart_arch_config") {
|
||||
defines = []
|
||||
|
||||
if (current_toolchain != dart_host_sdk_toolchain) {
|
||||
if (dart_target_arch == "arm") {
|
||||
defines += [ "TARGET_ARCH_ARM" ]
|
||||
} else if (dart_target_arch == "armv6") {
|
||||
|
@ -99,6 +103,7 @@ config("dart_arch_config") {
|
|||
assert(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config("dart_config") {
|
||||
defines = []
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("../../build/dart_host_sdk_toolchain.gni")
|
||||
import("../../build/executable_suffix.gni")
|
||||
import("../../build/prebuilt_dart_sdk.gni")
|
||||
import("observatory_sources.gni")
|
||||
|
@ -10,10 +11,10 @@ import("observatory_sources.gni")
|
|||
pub_build_deps = []
|
||||
pub_build_args = []
|
||||
if (!prebuilt_dart_exe_works) {
|
||||
pub_build_deps += [ "../bin:dart_bootstrap($host_toolchain)" ]
|
||||
pub_build_deps += [ "../bin:dart_bootstrap($dart_host_toolchain)" ]
|
||||
|
||||
dart_out_dir =
|
||||
get_label_info("../bin:dart_bootstrap($host_toolchain)", "root_out_dir")
|
||||
dart_out_dir = get_label_info("../bin:dart_bootstrap($dart_host_toolchain)",
|
||||
"root_out_dir")
|
||||
dart_bootstrap = rebase_path("$dart_out_dir/dart_bootstrap$executable_suffix")
|
||||
|
||||
pub_build_args = [
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# 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_sdk_toolchain.gni")
|
||||
import("../build/prebuilt_dart_sdk.gni")
|
||||
|
||||
_dart_root = get_path_info("..", "abspath")
|
||||
|
@ -35,9 +36,9 @@ template("compile_platform") {
|
|||
depfile = outputs[0] + ".d"
|
||||
|
||||
if (!prebuilt_dart_exe_works) {
|
||||
deps += [ "$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)" ]
|
||||
deps += [ "$_dart_root/runtime/bin:dart_bootstrap($dart_host_toolchain)" ]
|
||||
dart_out_dir = get_label_info(
|
||||
"$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)",
|
||||
"$_dart_root/runtime/bin:dart_bootstrap($dart_host_toolchain)",
|
||||
"root_out_dir")
|
||||
args += [
|
||||
"--dart-executable",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
# BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
import("../../build/compiled_action.gni")
|
||||
import("../../build/dart_host_sdk_toolchain.gni")
|
||||
import("../../build/prebuilt_dart_sdk.gni")
|
||||
import("../../utils/compile_platform.gni")
|
||||
import("../../utils/generate_patch_sdk.gni")
|
||||
|
@ -84,7 +85,7 @@ generate_patched_sdk("patched_dart2js_sdk") {
|
|||
deps = [
|
||||
# TODO(ahe): This is needed by ../../tools/patch_sdk.dart to compute
|
||||
# dependencies.
|
||||
"../../runtime/vm:kernel_platform_files($host_toolchain)",
|
||||
"../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
|
||||
]
|
||||
input_patches_dir = "../../sdk/lib/_internal/js_runtime/lib"
|
||||
patched_sdk_dir = "patched_dart2js_sdk"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# 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_sdk_toolchain.gni")
|
||||
import("../build/prebuilt_dart_sdk.gni")
|
||||
|
||||
_dart_root = get_path_info("..", "abspath")
|
||||
|
@ -28,7 +29,7 @@ template("generate_patched_sdk") {
|
|||
}
|
||||
|
||||
if (!prebuilt_dart_exe_works) {
|
||||
deps += [ "$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)" ]
|
||||
deps += [ "$_dart_root/runtime/bin:dart_bootstrap($dart_host_toolchain)" ]
|
||||
}
|
||||
|
||||
script = "$_dart_root/tools/patch_sdk.py"
|
||||
|
@ -55,7 +56,7 @@ template("generate_patched_sdk") {
|
|||
args = [ "--quiet" ]
|
||||
if (!prebuilt_dart_exe_works) {
|
||||
dart_out_dir = get_label_info(
|
||||
"$_dart_root/runtime/bin:dart_bootstrap($host_toolchain)",
|
||||
"$_dart_root/runtime/bin:dart_bootstrap($dart_host_toolchain)",
|
||||
"root_out_dir")
|
||||
dart_bootstrap =
|
||||
rebase_path("$dart_out_dir/dart_bootstrap$executable_suffix")
|
||||
|
|
|
@ -2,12 +2,13 @@
|
|||
# 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_sdk_toolchain.gni")
|
||||
import("../application_snapshot.gni")
|
||||
|
||||
application_snapshot("kernel-service") {
|
||||
dfe_script = "kernel-service.dart"
|
||||
deps = [
|
||||
"../../runtime/vm:kernel_platform_files($host_toolchain)",
|
||||
"../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
|
||||
]
|
||||
main_dart = dfe_script
|
||||
training_args = [
|
||||
|
|
Loading…
Reference in a new issue