910e62b5创建于 1月15日历史提交
# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# @generated from build/rust/std/BUILD.gn.hbs by tools/crates/gnrt. Do not edit!

import("//build/rust/cargo_crate.gni")

{{#each rules}}
{{#with this.detail}}
cargo_crate("{{../name}}") {
  crate_type = "{{crate_type}}"
  crate_root = "{{crate_root}}"
  {{#if cond}}
  enabled = {{cond}}
  {{/if}}
  sources = [
    {{#each sources}}
    "{{this}}",
    {{/each}}
  ]
  inputs = [
    {{#each inputs}}
    "{{this}}",
    {{/each}}
  ]
  no_std = true

  # Unit tests skipped. Generate with --with-tests to include them.
  build_native_rust_unit_tests = false
  edition = "{{edition}}"
  cargo_pkg_version = "{{cargo_pkg_version}}"
  {{#if cargo_pkg_authors}}
    {{#with cargo_pkg_authors}}
      cargo_pkg_authors = "{{this}}"
    {{/with}}
  {{/if}}
  cargo_pkg_name = "{{cargo_pkg_name}}"
  {{#if cargo_pkg_description}}
    {{#with cargo_pkg_description}}
      cargo_pkg_description = "{{gn_escape this}}"
    {{/with}}
  {{/if}}
  {{#if cargo_pkg_repository}}
    {{#with cargo_pkg_repository}}
      cargo_pkg_repository = "{{this}}"
    {{/with}}
  {{/if}}
  library_configs -= [
    "//build/config/compiler:chromium_code",
    "//build/config/compiler:disallow_unstable_features",
    {{#unless extra_kv.include_coverage}}
    "//build/config/coverage:default_coverage",
    {{/unless}}
  ]
  library_configs += [
    "//build/config/compiler:no_chromium_code",
    {{#if extra_kv.immediate_abort}}
    "//build/rust:panic_immediate_abort",
    {{/if}}
  ]
  executable_configs -= [
    "//build/config/compiler:chromium_code",
    "//build/config/compiler:disallow_unstable_features",
  ]
  executable_configs += [
    "//build/config/compiler:no_chromium_code",
  ]
  deps = [
    "//build/rust/std:std_build_deps",
    {{#if extra_kv.include_coverage}}
    "//build/rust/std:profiler_builtins_group",
    {{/if}}
  {{#unless deps}}
  ]
  {{/unless}}
  {{#each deps}}
  {{#if @first}}
    {{#each this.packages}}
    ":{{this.name}}",
    {{/each}}
  ]
  {{else}}
  if ({{this.cond}}) {
    deps += [
      {{#each this.packages}}
      ":{{this.name}}",
      {{/each}}
    ]
  }
  {{/if}}
  {{/each}}
  {{#if aliased_deps}}
  aliased_deps = {
    {{#each aliased_deps}}
    {{this.0}} = ":{{this.1.name}}"
    {{/each}}
  }
  {{/if}}
  {{#if features}}
  features = [
    {{#each features}}
    "{{this}}",
    {{/each}}
  ]
  {{/if}}
  {{#unless extra_kv.skip_build_rs}}
  {{#if build_root}}
    build_root = "{{build_root}}"
    build_sources = [
      {{#each build_script_sources}}
        "{{this}}",
      {{/each}}
    ]
    {{#if build_script_inputs}}
      build_script_inputs = [
        {{#each build_script_inputs}}
          "{{this}}",
        {{/each}}
      ]
    {{/if}}
    {{#if build_script_outputs}}
      build_script_outputs = [
        {{#each build_script_outputs}}
          "{{this}}",
        {{/each}}
      ]
    {{/if}}
    {{#each build_deps}}
      {{#if @first}}
        build_deps = [
          {{#each this.packages}}
            ":{{this.name}}",
          {{/each}}
        ]
      {{else}}
        if ({{this.cond}}) {
          build_deps += [
          {{#each this.packages}}
            ":{{this.name}}",
          {{/each}}
          ]
        }
      {{/if}}
    {{/each}}
  {{/if}}
  {{/unless}}
  rustenv = [
    "CFG_DISABLE_UNSTABLE_FEATURES=0",
    "STD_ENV_ARCH=$rust_target_arch",
  ]
  rustflags = [
    "--cfg=backtrace_in_libstd",
    "-Zforce-unstable-if-unmarked",
    "--cap-lints=allow",  # Suppress all warnings in stdlib crates
    {{#if extra_kv.no_link_directives}}
    "-Zlink-directives=false",
    {{/if}}
  ]
  output_dir = "$root_out_dir/local_rustc_sysroot/lib/rustlib/$rust_abi_target/lib/"

  {{#if extra_kv.raw_gn}}
  {{#with extra_kv.raw_gn}}
  {{this}}
  {{/with}}
  {{/if}}
}
{{/with}}
{{/each}}