dart-sdk/utils/compiler/BUILD.gn
Sigmund Cherem f72782ce9b [dart2js]: require dart2js to be invoked from an approved CLI
The dart2js snapshot is not meant to be invoked directly except from
a limited set of entry points (CLIs and internal build systems).
This change makes it an error to invoke it in unsupported ways.

Note: this change is not expected to be visible to end users.

Fixes #51695

Change-Id: I4013dd00b90bb3d54483e2f112e0ddfb8dc694e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/289885
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2023-03-23 01:58:58 +00:00

145 lines
3.9 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("../../sdk_args.gni")
import("../../utils/compile_platform.gni")
import("../application_snapshot.gni")
import("../create_timestamp.gni")
create_timestamp_file("dart2js_files_stamp") {
path = rebase_path("../../pkg/compiler/lib")
output = "$target_gen_dir/dart2js_files.stamp"
}
create_timestamp_file("runtime_lib_files_stamp") {
path = rebase_path("../../runtime/lib")
output = "$target_gen_dir/runtime_lib_files.stamp"
}
create_timestamp_file("dartdoc_files_stamp") {
path = rebase_path("../../sdk/lib/_internal/dartdoc")
output = "$target_gen_dir/dartdoc_files.stamp"
}
prebuilt_dart_action("dart2js_create_snapshot_entry") {
deps = [
":dart2js_files_stamp",
":dartdoc_files_stamp",
":runtime_lib_files_stamp",
]
output_dir = rebase_path(target_gen_dir)
script = "create_snapshot_entry.dart"
inputs = [
"$target_gen_dir/dart2js_files.stamp",
"../../tools/make_version.py",
"../../tools/VERSION",
]
outputs = [ "$target_gen_dir/dart2js.dart" ]
packages = "../../.dart_tool/package_config.json"
args = [ "--output_dir=$output_dir" ]
}
sdk_root = "../../sdk"
application_snapshot("dart2js") {
deps = [
":compile_dart2js_platform",
":compile_dart2js_platform_unsound",
":dart2js_create_snapshot_entry",
]
inputs = [
"$root_out_dir/dart2js_platform.dill",
"$root_out_dir/dart2js_platform_unsound.dill",
"$root_out_dir/dart2js_outline.dill",
"$root_out_dir/dart2js_outline_unsound.dill",
]
vm_args = []
main_dart = "$target_gen_dir/dart2js.dart"
training_args = [
"--invoker=gn_build",
"--packages=" +
rebase_path("../../.dart_tool/package_config.json", root_build_dir),
"--libraries-spec=" +
rebase_path("$sdk_root/lib/libraries.json", root_build_dir),
# Specifying the platform explicitly elides running the CFE on the sdk
# sources.
"--platform-binaries=" + rebase_path("$root_out_dir/", root_build_dir),
rebase_path("../../pkg/compiler/lib/src/util/memory_compiler.dart"),
]
}
compile_platform("compile_dart2js_platform_unsound") {
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("$sdk_root/")
libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
outputs = [
"$root_out_dir/dart2js_platform_unsound.dill",
"$root_out_dir/dart2js_outline_unsound.dill",
]
args = [
"--target=dart2js",
"--no-defines",
"dart:core",
]
}
compile_platform("compile_dart2js_platform") {
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("$sdk_root/")
libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
outputs = [
"$root_out_dir/dart2js_platform.dill",
"$root_out_dir/dart2js_outline.dill",
]
args = [
"--target=dart2js",
"--no-defines",
"dart:core",
"--nnbd-strong",
]
}
compile_platform("compile_dart2js_server_platform_unsound") {
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("$sdk_root/")
libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
outputs = [
"$root_out_dir/dart2js_server_platform_unsound.dill",
"$root_out_dir/dart2js_server_outline_unsound.dill",
]
args = [
"--target=dart2js_server",
"--no-defines",
"dart:core",
]
}
compile_platform("compile_dart2js_server_platform") {
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("$sdk_root/")
libraries_specification_uri = "org-dartlang-sdk:///lib/libraries.json"
outputs = [
"$root_out_dir/dart2js_server_platform.dill",
"$root_out_dir/dart2js_server_outline.dill",
]
args = [
"--target=dart2js_server",
"--no-defines",
"dart:core",
"--nnbd-strong",
]
}