# 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") _dart_root = get_path_info("..", "abspath") template("compile_platform") { assert(defined(invoker.libraries_specification_uri), "Need 'libraries_specification_uri' in $target_name") assert(defined(invoker.outputs), "Need 'outputs' in $target_name") assert(defined(invoker.args), "Need 'args' in $target_name") if (defined(invoker.single_root_scheme)) { assert(defined(invoker.single_root_base), "Need 'single_root_base' in $target_name") } if (defined(invoker.single_root_base)) { assert(defined(invoker.single_root_scheme), "Need 'single_root_scheme' in $target_name") } assert(!defined(invoker.script), "Remove 'script' from $target_name") assert(!defined(invoker.depfile), "Remove 'depfile' from $target_name") # In order to automatically compute dependencies, we need to add a dependency # on vm_outline.dill. This is used to include the source code of Fasta itself # in the dependency file. Without this, a change to Fasta wouldn't cause the # platform dill files to be rebuilt. However, when building # vm_outline_strong.dill, we shouldn't list it as a dependency as this would # lead to cyclic dependencies. add_implicit_vm_platform_dependency = true if (defined(invoker.add_implicit_vm_platform_dependency)) { add_implicit_vm_platform_dependency = invoker.add_implicit_vm_platform_dependency } prebuilt_dart_action(target_name) { script = "$_dart_root/pkg/front_end/tool/_fasta/compile_platform.dart" packages = "$_dart_root/.packages" outputs = invoker.outputs inputs = [] deps = [] args = [] if (defined(invoker.deps)) { deps += invoker.deps } if (defined(invoker.inputs)) { inputs += invoker.inputs } if (add_implicit_vm_platform_dependency) { inputs += [ "$root_out_dir/vm_outline_strong.dill" ] deps += [ "$_dart_root/runtime/vm:vm_platform" ] } depfile = outputs[0] + ".d" args += invoker.args if (defined(invoker.single_root_scheme)) { args += [ "--single-root-scheme=" + invoker.single_root_scheme ] } if (defined(invoker.single_root_base)) { args += [ "--single-root-base=" + invoker.single_root_base ] } if (defined(invoker.single_root_scheme)) { args += [ invoker.libraries_specification_uri ] } else { args += [ rebase_path(invoker.libraries_specification_uri, root_build_dir) ] } args += [ rebase_path("$root_out_dir/vm_outline_strong.dill", root_build_dir) ] args += rebase_path(outputs, root_build_dir) } }