xref: /aosp_15_r20/external/cronet/testing/rust_gtest_interop/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2022 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Workerimport("//build/rust/rust_macro.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/rust/rust_static_library.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//testing/test.gni")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Workerif (enable_rust) {
10*6777b538SAndroid Build Coastguard Worker  group("rust_gtest_interop") {
11*6777b538SAndroid Build Coastguard Worker    testonly = true
12*6777b538SAndroid Build Coastguard Worker    public_deps = [
13*6777b538SAndroid Build Coastguard Worker      ":rust_gtest_interop_cpp",
14*6777b538SAndroid Build Coastguard Worker      ":rust_gtest_interop_rust",
15*6777b538SAndroid Build Coastguard Worker    ]
16*6777b538SAndroid Build Coastguard Worker  }
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker  static_library("rust_gtest_interop_cpp") {
19*6777b538SAndroid Build Coastguard Worker    testonly = true
20*6777b538SAndroid Build Coastguard Worker    visibility = [ ":rust_gtest_interop" ]
21*6777b538SAndroid Build Coastguard Worker    sources = [
22*6777b538SAndroid Build Coastguard Worker      "rust_gtest_interop.cc",
23*6777b538SAndroid Build Coastguard Worker      "rust_gtest_interop.h",
24*6777b538SAndroid Build Coastguard Worker    ]
25*6777b538SAndroid Build Coastguard Worker    deps = [
26*6777b538SAndroid Build Coastguard Worker      "//base",
27*6777b538SAndroid Build Coastguard Worker      "//testing/gtest",
28*6777b538SAndroid Build Coastguard Worker    ]
29*6777b538SAndroid Build Coastguard Worker  }
30*6777b538SAndroid Build Coastguard Worker
31*6777b538SAndroid Build Coastguard Worker  rust_static_library("rust_gtest_interop_rust") {
32*6777b538SAndroid Build Coastguard Worker    testonly = true
33*6777b538SAndroid Build Coastguard Worker    visibility = [ ":rust_gtest_interop" ]
34*6777b538SAndroid Build Coastguard Worker    crate_name = "rust_gtest_interop"
35*6777b538SAndroid Build Coastguard Worker    crate_root = "rust_gtest_interop.rs"
36*6777b538SAndroid Build Coastguard Worker    allow_unsafe = true
37*6777b538SAndroid Build Coastguard Worker    sources = [
38*6777b538SAndroid Build Coastguard Worker      "expect_macros.rs",
39*6777b538SAndroid Build Coastguard Worker      "rust_gtest_interop.rs",
40*6777b538SAndroid Build Coastguard Worker    ]
41*6777b538SAndroid Build Coastguard Worker    deps = [
42*6777b538SAndroid Build Coastguard Worker      # Macros re-exported from the rust_gtest_interop crate. Can only be
43*6777b538SAndroid Build Coastguard Worker      # accessed through the crate, so not public_deps.
44*6777b538SAndroid Build Coastguard Worker      ":gtest_attribute",
45*6777b538SAndroid Build Coastguard Worker
46*6777b538SAndroid Build Coastguard Worker      # This is re-exported for the gtest_attribute macros.
47*6777b538SAndroid Build Coastguard Worker      "//third_party/rust/small_ctor/v0_1:lib",
48*6777b538SAndroid Build Coastguard Worker    ]
49*6777b538SAndroid Build Coastguard Worker  }
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker  rust_macro("gtest_attribute") {
52*6777b538SAndroid Build Coastguard Worker    testonly = true
53*6777b538SAndroid Build Coastguard Worker
54*6777b538SAndroid Build Coastguard Worker    crate_root = "gtest_attribute.rs"
55*6777b538SAndroid Build Coastguard Worker    sources = [ "gtest_attribute.rs" ]
56*6777b538SAndroid Build Coastguard Worker    deps = [
57*6777b538SAndroid Build Coastguard Worker      "//third_party/rust/proc_macro2/v1:lib",
58*6777b538SAndroid Build Coastguard Worker      "//third_party/rust/quote/v1:lib",
59*6777b538SAndroid Build Coastguard Worker      "//third_party/rust/syn/v2:lib",
60*6777b538SAndroid Build Coastguard Worker    ]
61*6777b538SAndroid Build Coastguard Worker
62*6777b538SAndroid Build Coastguard Worker    # This target's contents are exposed as part of :rust_gtest_interop.
63*6777b538SAndroid Build Coastguard Worker    visibility = [ ":*" ]
64*6777b538SAndroid Build Coastguard Worker  }
65*6777b538SAndroid Build Coastguard Worker
66*6777b538SAndroid Build Coastguard Worker  test("rust_gtest_interop_unittests") {
67*6777b538SAndroid Build Coastguard Worker    sources = [
68*6777b538SAndroid Build Coastguard Worker      "rust_gtest_interop_unittest.rs",
69*6777b538SAndroid Build Coastguard Worker      "rust_gtest_interop_unittest_main.cc",
70*6777b538SAndroid Build Coastguard Worker    ]
71*6777b538SAndroid Build Coastguard Worker    deps = [
72*6777b538SAndroid Build Coastguard Worker      "//base",
73*6777b538SAndroid Build Coastguard Worker      "//base/test:test_support",
74*6777b538SAndroid Build Coastguard Worker      "//build:blink_buildflags",
75*6777b538SAndroid Build Coastguard Worker      "//testing/gtest",
76*6777b538SAndroid Build Coastguard Worker    ]
77*6777b538SAndroid Build Coastguard Worker  }
78*6777b538SAndroid Build Coastguard Worker}
79