xref: /aosp_15_r20/external/angle/build/rust/tests/test_rlib_crate/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1# Copyright 2021 The Chromium Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//build/rust/cargo_crate.gni")
6
7cargo_crate("target1") {
8  crate_name = "test_rlib_crate"
9  crate_root = "crate/src/lib.rs"
10  sources = [ "crate/src/lib.rs" ]
11  build_sources = [ "crate/build.rs" ]
12  build_root = "crate/build.rs"
13  build_script_inputs = [ "crate/build.rs" ]
14  build_script_outputs = [ "generated/generated.rs" ]
15  epoch = "0.2"
16  features = [
17    "my-feature_a",
18    "my-feature_b",
19  ]
20  rustflags = [
21    "--cfg",
22    "test_a_and_b",
23  ]
24  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
25}
26
27# Test that we can build the same crate in multiple ways under different GN
28# rules without conflicts.
29cargo_crate("target2") {
30  crate_name = "test_rlib_crate"
31  crate_root = "crate/src/lib.rs"
32  sources = [ "crate/src/lib.rs" ]
33  build_sources = [ "crate/build.rs" ]
34  build_root = "crate/build.rs"
35  build_script_inputs = [ "crate/build.rs" ]
36  build_script_outputs = [ "generated/generated.rs" ]
37  epoch = "0.2"
38  features = [ "my-feature_a" ]
39  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
40}
41
42# Exists to test the case that a single crate has both a library
43# and a binary, to ensure that shared build products (e.g. the
44# build script) don't conflict.
45cargo_crate("test_rlib_crate_associated_bin") {
46  crate_root = "crate/src/main.rs"
47  crate_type = "bin"
48  sources = [ "crate/src/main.rs" ]
49  build_sources = [ "crate/build.rs" ]
50  build_root = "crate/build.rs"
51  build_script_inputs = [ "crate/build.rs" ]
52  features = [
53    "my-feature_a",
54    "my-feature_b",
55  ]
56  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
57  deps = [ ":target1" ]
58}
59