61 lines
2.7 KiB
TOML
61 lines
2.7 KiB
TOML
# 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.
|
|
|
|
# Provides per-crate and overall configuration options to gnrt.
|
|
|
|
[all]
|
|
# force-unstable-if-unmarked prevents normal crates from inadvertently using
|
|
# symbols from std-internal dependencies in the sysroot. This is normally passed
|
|
# during an x.py build, but we have to do it manually.
|
|
rustflags = ['-Zforce-unstable-if-unmarked']
|
|
|
|
# Override the GN output dir. We direct std targets to output directly to the
|
|
# sysroot we'll use later. This must stay in sync with `local_rustc_sysroot` in
|
|
# //build/rust/std/BUILD.gn
|
|
output_dir = '$root_out_dir/local_rustc_sysroot/lib/rustlib/$rust_abi_target/lib/'
|
|
|
|
# This target provides setup needed for building std.
|
|
extra_gn_deps = ['//build/rust/std:std_build_deps']
|
|
|
|
[crate.libc]
|
|
# Many flags are set by libc's build.rs based on new enough rustc but we don't
|
|
# run build scripts for std crates.
|
|
# See https://github.com/rust-lang/libc/blob/master/build.rs
|
|
cfg = ['libc_priv_mod_use', 'libc_union', 'libc_const_size_of', 'libc_align',
|
|
'libc_int128', 'libc_core_cvoid', 'libc_packedN', 'libc_cfg_target_vendor',
|
|
'libc_non_exhaustive', 'libc_long_array', 'libc_ptr_addr_of',
|
|
'libc_underscore_const_names', 'libc_const_extern_fn'
|
|
]
|
|
|
|
[crate.std]
|
|
# Requires:
|
|
# * cfg(backtrace_in_libstd) because it directly includes .rs files from the
|
|
# backtrace code rather than including it as a dependency. backtrace's
|
|
# implementation has special-purpose code to handle this.
|
|
# * STD_ENV_ARCH is referenced in architecture-dependent code. Note this is the
|
|
# target arch, and as such `$rust_target_arch` is passed literally to GN. This
|
|
# variable is set at build time in build/config/rust.gni
|
|
#
|
|
# See https://github.com/rust-lang/rust/blob/master/library/std/build.rs
|
|
cfg = ['backtrace_in_libstd']
|
|
env = ['STD_ENV_ARCH=$rust_target_arch']
|
|
|
|
[crate.test]
|
|
# Requires:
|
|
# * CFG_DISABLE_UNSTABLE_FEATURES=0 to match how it's built by x.py.
|
|
env = ['CFG_DISABLE_UNSTABLE_FEATURES=0']
|
|
|
|
# test only depends on proc_macro as an internal detail of the Rust build, so
|
|
# it's implicitly included with std/test. However, we list the std crates and
|
|
# construct the sysroot explicitly. We don't need this, and we don't even want
|
|
# it during cross-compiles (since we will only build host proc_macro crates).
|
|
exclude_deps_in_gn = ['proc_macro']
|
|
|
|
[crate.unwind]
|
|
# The unwind crate has #[link] directives to the native unwind library, but we
|
|
# either get that automatically by linking with clang++, or build and link the
|
|
# lib from //buildtools/third_party/libunsind explicitly. Disable -lfoo linker
|
|
# flags from this crate.
|
|
rustflags = ['-Zlink-directives=false']
|