# 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", "/"), ] 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", # Ensure gen_kernel.dart will use this SDK hash when consuming/producing # kernel. "-Dsdk_hash=$sdk_hash", ] script = gen_kernel_script scheme = "org-dartlang-kernel-service" args = invoker.extra_args + [ # Ensure the compiled kernel-service will use this SDK hash when # consuming/producing kernel. "-Dsdk_hash=$sdk_hash", "--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" ] } } kernel_service_dill("") { extra_args = [] }