dart-sdk/utils/compiler/BUILD.gn
Alexander Aprelev f4d9c95262 [vm/dart2js] Add dart2js aot snapshot target to build scripts.
dart2js aot snapshot is used internally, so it makes sense to start building it externally to better understand its performance characteristics.
This CL doesn't add aot snapshot to dart sdk.

Change-Id: Id82a956138b118fb0a4bf0a16b1750e7bd4a801e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/330664
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2023-10-16 19:23:09 +00:00

153 lines
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("../../sdk_args.gni")
import("../../utils/compile_platform.gni")
import("../aot_snapshot.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"),
]
}
aot_snapshot("dart2js_aot") {
deps = [ ":dart2js_create_snapshot_entry" ]
main_dart = "$target_gen_dir/dart2js.dart"
name = "dart2js_aot"
}
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",
]
}