| # Copyright 2022 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/config/rust.gni") |
| import("//build/rust/rust_macro.gni") |
| import("//build/rust/rust_static_library.gni") |
| |
| # Common constants. |
| _support_dir = "{rust_sysroot}/lib/crubit" |
| |
| # Dependencies of ..._rs_api.rs files generated by Crubit's |
| # `bin/rs_bindings_from_cc` tool. See also `deps_for_generated_rs_file` in |
| # Crubit's `src/rs_bindings_from_cc/BUILD`. |
| group("deps_of_rs_api") { |
| public_deps = [ |
| ":ctor", |
| ":forward_declare", |
| ":oops", |
| "//third_party/rust/memoffset/v0_6:lib", |
| "//third_party/rust/static_assertions/v1:lib", |
| ] |
| } |
| |
| # Dependencies of ..._rs_api_impl.cc files generated by Crubit's |
| # `bin/rs_bindings_from_cc` tool. See also `deps_for_generated_cc_file` in |
| # Crubit's `src/rs_bindings_from_cc/BUILD`. |
| source_set("deps_of_rs_api_impl") { |
| sources = [ |
| "${_support_dir}/cxx20_backports.h", |
| "${_support_dir}/offsetof.h", |
| ] |
| } |
| |
| # TODO: crbug.com/40226863 - Crubit should publish a Cargo.toml for these |
| # crates, then we can generate rules for them dynamically with gnrt. |
| rust_static_library("ctor") { |
| crate_root = "${_support_dir}/ctor.rs" |
| sources = [ "${_support_dir}/ctor.rs" ] |
| build_native_rust_unit_tests = true |
| deps = [ ":ctor_proc_macros" ] |
| } |
| |
| rust_macro("ctor_proc_macros") { |
| visibility = [ ":*" ] |
| crate_root = "${_support_dir}/ctor_proc_macros.rs" |
| sources = [ "${_support_dir}/ctor_proc_macros.rs" ] |
| deps = [ |
| "//third_party/rust/proc_macro2/v1:lib", |
| "//third_party/rust/quote/v1:lib", |
| "//third_party/rust/syn/v1:lib", |
| ] |
| } |
| |
| rust_static_library("forward_declare") { |
| crate_root = "${_support_dir}/forward_declare.rs" |
| sources = [ "${_support_dir}/forward_declare.rs" ] |
| build_native_rust_unit_tests = true |
| deps = [ ":forward_declare_proc_macros" ] |
| } |
| |
| rust_macro("forward_declare_proc_macros") { |
| visibility = [ ":*" ] |
| crate_root = "${_support_dir}/forward_declare_proc_macros.rs" |
| sources = [ "${_support_dir}/forward_declare_proc_macros.rs" ] |
| deps = [ |
| "//third_party/rust/proc_macro2/v1:lib", |
| "//third_party/rust/quote/v1:lib", |
| "//third_party/rust/syn/v1:lib", |
| ] |
| } |
| |
| rust_static_library("oops") { |
| crate_root = "${_support_dir}/oops.rs" |
| sources = [ "${_support_dir}/oops.rs" ] |
| build_native_rust_unit_tests = true |
| } |