mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2025-04-11 21:21:07 +00:00
87 lines
2.2 KiB
Text
87 lines
2.2 KiB
Text
# Copyright 2021 The Chromium Authors
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("//build/buildflag_header.gni")
|
|
import("//build/config/rust.gni")
|
|
|
|
if (toolchain_has_rust) {
|
|
config("edition_2021") {
|
|
rustflags = [ "--edition=2021" ]
|
|
}
|
|
|
|
config("edition_2018") {
|
|
rustflags = [ "--edition=2018" ]
|
|
}
|
|
|
|
config("edition_2015") {
|
|
rustflags = [ "--edition=2015" ]
|
|
}
|
|
|
|
# The required dependencies for cxx-generated bindings, that must be included
|
|
# on the C++ side.
|
|
static_library("cxx_cppdeps") {
|
|
sources = [
|
|
"//third_party/rust/cxx/v1/crate/include/cxx.h",
|
|
"//third_party/rust/cxx/v1/crate/src/cxx.cc",
|
|
]
|
|
|
|
defines = [ "RUST_CXX_NO_EXCEPTIONS" ]
|
|
|
|
# We cannot depend on base/base_export.h because base depends on us.
|
|
if (is_component_build) {
|
|
if (is_win) {
|
|
defines += [ "CXX_RS_EXPORT=__declspec(dllexport)" ]
|
|
} else {
|
|
defines += [ "CXX_RS_EXPORT=__attribute__((visibility(\"default\")))" ]
|
|
}
|
|
} else {
|
|
defines += [ "CXX_RS_EXPORT=" ]
|
|
}
|
|
|
|
# Depending on the C++ bindings side of cxx then requires also depending
|
|
# on the Rust bindings, since one calls the other. And the Rust bindings
|
|
# require the Rust standard library.
|
|
deps = [ ":cxx_rustdeps" ]
|
|
}
|
|
|
|
# The required dependencies for cxx-generated bindings, that must be included
|
|
# on the Rust side.
|
|
group("cxx_rustdeps") {
|
|
public_deps = [ "//third_party/rust/cxx/v1:lib" ]
|
|
}
|
|
}
|
|
|
|
# Enables code behind #[cfg(test)]. This should only be used for targets where
|
|
# testonly=true.
|
|
config("test") {
|
|
rustflags = [
|
|
"--cfg",
|
|
"test",
|
|
]
|
|
}
|
|
|
|
# TODO(crbug.com/gn/104): GN rust_proc_macro targets are missing this
|
|
# command line flag, for the proc_macro crate which is provided by rustc for
|
|
# compiling proc-macros.
|
|
config("proc_macro_extern") {
|
|
rustflags = [
|
|
"--extern",
|
|
"proc_macro",
|
|
]
|
|
}
|
|
|
|
# Forbids unsafe code in crates with this config.
|
|
config("forbid_unsafe") {
|
|
rustflags = [ "-Funsafe_code" ]
|
|
}
|
|
|
|
config("panic_immediate_abort") {
|
|
visibility = [ "//build/rust/std/rules:*" ]
|
|
if (is_official_build) {
|
|
rustflags = [
|
|
"--cfg",
|
|
"feature=\"panic_immediate_abort\"",
|
|
]
|
|
}
|
|
}
|