| # 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. |
| |
| import("../../build/dart/dart_action.gni") |
| import("../../runtime/runtime_args.gni") |
| import("../../sdk_args.gni") |
| import("../application_snapshot.gni") |
| import("../create_timestamp.gni") |
| |
| group("kernel-service") { |
| if (create_kernel_service_snapshot) { |
| deps = [ ":copy_kernel-service_snapshot" ] |
| } else { |
| deps = [ ":kernel_service_dill" ] |
| } |
| } |
| |
| kernel_application_snapshot("kernel-service_snapshot") { |
| main_dart = "../../pkg/vm/bin/kernel_service.dart" |
| training_args = [ |
| "--train", |
| |
| # Force triple-slashes both on Windows and otherwise. |
| # Becomes e.g. file:///full/path/to/file and "file:///C:/full/path/to/file. |
| # Without the ', "/"' part, on Linux it would get four slashes. |
| "file:///" + rebase_path("../../pkg/compiler/lib/src/dart2js.dart", "/"), |
| ] |
| if (dart_platform_bytecode) { |
| training_args += [ "--bytecode" ] |
| } |
| output = "$root_gen_dir/kernel-service.dart.snapshot" |
| } |
| |
| copy("copy_kernel-service_snapshot") { |
| deps = [ ":kernel-service_snapshot" ] |
| sources = [ "$root_gen_dir/kernel-service.dart.snapshot" ] |
| outputs = [ "$root_out_dir/kernel-service.dart.snapshot" ] |
| } |
| |
| create_timestamp_file("frontend_server_files_stamp") { |
| path = rebase_path("../../pkg/frontend_server/lib") |
| output = "$target_gen_dir/frontend_server_files.stamp" |
| } |
| |
| create_timestamp_file("ddc_files_stamp") { |
| path = rebase_path("../../pkg/dev_compiler/lib") |
| output = "$target_gen_dir/ddc_files.stamp" |
| } |
| |
| application_snapshot("frontend_server") { |
| main_dart = "../../pkg/frontend_server/bin/frontend_server_starter.dart" |
| deps = [ |
| ":ddc_files_stamp", |
| ":frontend_server_files_stamp", |
| "../../runtime/vm:kernel_platform_files($host_toolchain)", |
| ] |
| sdk_root = rebase_path("$root_out_dir") |
| training_args = [ |
| "--train", |
| "--sdk-root=$sdk_root/", |
| "--platform=$sdk_root/vm_platform_strong.dill", |
| rebase_path(main_dart), |
| ] |
| output = "$root_out_dir/frontend_server.dart.snapshot" |
| } |
| |
| template("kernel_service_dill") { |
| prebuilt_dart_action("kernel_service" + target_name + "_dill") { |
| deps = [ |
| "../../runtime/vm:kernel_platform_files($host_toolchain)", |
| "../../runtime/vm:vm_platform", |
| ] |
| kernel_service_script = "../../pkg/vm/bin/kernel_service.dart" |
| gen_kernel_script = "../../pkg/vm/bin/gen_kernel.dart" |
| |
| inputs = [ |
| gen_kernel_script, |
| kernel_service_script, |
| "$root_out_dir/vm_platform_strong.dill", |
| ] |
| output = "$root_gen_dir/kernel_service" + invoker.target_name + ".dill" |
| outputs = [ output ] |
| |
| depfile = "$root_gen_dir/kernel_service" + invoker.target_name + "_dill.d" |
| abs_depfile = rebase_path(depfile) |
| rebased_output = rebase_path(output, root_build_dir) |
| vm_args = [ |
| "--depfile=$abs_depfile", |
| "--depfile_output_filename=$rebased_output", |
| ] |
| |
| script = gen_kernel_script |
| scheme = "org-dartlang-kernel-service" |
| |
| args = |
| invoker.extra_args + [ |
| "--packages=" + scheme + ":///.packages", |
| "--platform=" + rebase_path("$root_out_dir/vm_platform_strong.dill"), |
| "--filesystem-root=" + rebase_path("../../"), |
| "--filesystem-scheme=" + scheme, |
| "--no-aot", |
| "--no-embed-sources", |
| "--output=" + rebase_path(output), |
| ] |
| args += [ scheme + ":///pkg/vm/bin/kernel_service.dart" ] |
| if (dart_platform_bytecode) { |
| args += [ |
| "--gen-bytecode", |
| "--drop-ast", |
| ] |
| } |
| } |
| } |
| |
| kernel_service_dill("") { |
| extra_args = [] |
| } |
| |
| kernel_service_dill("_bytecode") { |
| extra_args = [ "--gen-bytecode" ] |
| } |