# 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/rust/rust_macro.gni")
import("//build/rust/rust_static_library.gni")
import("//testing/test.gni")
if (enable_rust) {
group("rust_gtest_interop") {
testonly = true
public_deps = [
":rust_gtest_interop_cpp",
":rust_gtest_interop_rust",
]
}
static_library("rust_gtest_interop_cpp") {
testonly = true
visibility = [ ":rust_gtest_interop" ]
sources = [
"rust_gtest_interop.cc",
"rust_gtest_interop.h",
]
deps = [
"//base",
"//testing/gtest",
]
}
rust_static_library("rust_gtest_interop_rust") {
testonly = true
visibility = [ ":rust_gtest_interop" ]
crate_name = "rust_gtest_interop"
crate_root = "rust_gtest_interop.rs"
allow_unsafe = true
sources = [
"expect_macros.rs",
"rust_gtest_interop.rs",
]
deps = [
# Macros re-exported from the rust_gtest_interop crate. Can only be
# accessed through the crate, so not public_deps.
":gtest_attribute",
# This is re-exported for the gtest_attribute macros.
"//third_party/rust/small_ctor/v0_1:lib",
]
}
rust_macro("gtest_attribute") {
testonly = true
crate_root = "gtest_attribute.rs"
sources = [ "gtest_attribute.rs" ]
deps = [
"//third_party/rust/proc_macro2/v1:lib",
"//third_party/rust/quote/v1:lib",
"//third_party/rust/syn/v2:lib",
]
# This target's contents are exposed as part of :rust_gtest_interop.
visibility = [ ":*" ]
}
test("rust_gtest_interop_unittests") {
sources = [
"rust_gtest_interop_unittest.rs",
"rust_gtest_interop_unittest_main.cc",
]
deps = [
"//base",
"//base/test:test_support",
"//build:blink_buildflags",
"//testing/gtest",
]
}
}