| # Copyright 2019 The Fuchsia Authors. 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/rust/rustc_artifact.gni") |
| |
| # Aliases a Rust target to another name |
| # |
| # Parameters |
| # |
| # alias |
| # GN Target of the Rust crate that is being redirected too |
| # |
| template("rustc_alias") { |
| assert(defined(invoker.alias), "Must define an aliased crate") |
| |
| alias_name = get_label_info(invoker.alias, "name") |
| alias_dir = get_label_info(invoker.alias, "dir") |
| alias_outdir = |
| rebase_path(get_label_info(invoker.alias, "target_out_dir"), root_out_dir) |
| alias_info = "${alias_dir}:${alias_name}_info" |
| |
| group(target_name) { |
| deps = [ |
| invoker.alias, |
| ] |
| } |
| |
| copy("${target_name}_info") { |
| deps = [ |
| alias_info, |
| ] |
| sources = [ |
| "$root_out_dir/${alias_outdir}/${alias_name}_info.json", |
| ] |
| outputs = [ |
| "${target_out_dir}/${target_name}_info.json", |
| ] |
| } |
| } |