|  | # Copyright 2018 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/toolchain.gni") | 
|  | import("//build/toolchain/basic_toolchain.gni") | 
|  |  | 
|  | group("disable_strict_sources_check_allowlist") { | 
|  | #  ________  _________  ________  ________ | 
|  | # |\   ____\|\___   ___\\   __  \|\   __  \ | 
|  | # \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \ | 
|  | #  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\ | 
|  | #   \|____|\  \   \ \  \ \ \  \\\  \ \  \___| | 
|  | #     ____\_\  \   \ \__\ \ \_______\ \__\ | 
|  | #    |\_________\   \|__|  \|_______|\|__| | 
|  | #    \|_________| | 
|  | # This is an allowlist of packages that do not enforce that the source files | 
|  | # are listed in `source`. This is only intended to be used as a temporary | 
|  | # allowlist during soft migrations. | 
|  | visibility = [] | 
|  | } | 
|  |  | 
|  | cargo_toml_gen_desc_out = "$target_out_dir/cargo_toml_gen_desc.json" | 
|  | action("cargo_toml_gen_desc") { | 
|  | visibility = [ ":cargo_toml_gen" ] | 
|  | script = "//scripts/generate_cargo_desc.py" | 
|  | sources = [] | 
|  | inputs = [] | 
|  | outputs = [ cargo_toml_gen_desc_out ] | 
|  | depfile = "$cargo_toml_gen_desc_out.d" | 
|  | args = [ | 
|  | "--root_build_dir", | 
|  | ".", | 
|  | "--fuchsia_dir", | 
|  | rebase_path("//", root_build_dir), | 
|  | "--gn_binary", | 
|  | rebase_path("//prebuilt/third_party/gn/${host_platform}/gn", | 
|  | root_build_dir), | 
|  | "--output", | 
|  | rebase_path(cargo_toml_gen_desc_out, root_build_dir), | 
|  | "--depfile", | 
|  | rebase_path("$cargo_toml_gen_desc_out.d", root_build_dir), | 
|  | ] | 
|  | } | 
|  |  | 
|  | # NOTE: This target is used by "fx set --cargo-toml-gen ..." which | 
|  | # will do the following: | 
|  | # | 
|  | #  1) Ensure that "fx gen" (and "fx build") will pass `--ide-json` | 
|  | #     to `gn gen`, which generates an up-to-date | 
|  | #     `$root_build_dir/project.json` file, used here as input. | 
|  | # | 
|  | #  2) Add this target to the base packages list to ensure its | 
|  | #     action script is run by "fx build". | 
|  | # | 
|  | # For more details, see docs/development/language/rust/README.md | 
|  | # | 
|  | action("cargo_toml_gen") { | 
|  | # Nothing in-tree should depend on Cargo files. | 
|  | # TODO(bwb) remove base_packages visibility when auto-generation is disabled | 
|  | visibility = [ | 
|  | "//:additional_base_packages", | 
|  | "//:additional_cache_packages", | 
|  | "//:additional_universe_packages", | 
|  | ] | 
|  | script = "//scripts/generate_cargo.py" | 
|  | sources = [] | 
|  | inputs = [ cargo_toml_gen_desc_out ] | 
|  |  | 
|  | outputs = [ "$root_build_dir/cargo/generate_cargo.stamp" ] | 
|  | depfile = "$root_build_dir/cargo/generate_cargo.stamp.d" | 
|  | args = [ | 
|  | rebase_path(cargo_toml_gen_desc_out, root_build_dir), | 
|  | "--root_build_dir", | 
|  | ".", | 
|  | "--fuchsia_dir", | 
|  | rebase_path("//", root_build_dir), | 
|  | ] | 
|  | deps = [ ":cargo_toml_gen_desc" ] | 
|  | } |