# 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", ] } }