xref: /aosp_15_r20/external/cronet/build/rust/tests/test_rlib_crate/BUILD.gn (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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_outputs = [ "generated/generated.rs" ]
14  epoch = "0.2"
15  features = [
16    "my-feature_a",
17    "my-feature_b",
18  ]
19  rustflags = [
20    "--cfg",
21    "test_a_and_b",
22  ]
23  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
24}
25
26# Test that we can build the same crate in multiple ways under different GN
27# rules without conflicts.
28cargo_crate("target2") {
29  crate_name = "test_rlib_crate"
30  crate_root = "crate/src/lib.rs"
31  sources = [ "crate/src/lib.rs" ]
32  build_sources = [ "crate/build.rs" ]
33  build_root = "crate/build.rs"
34  build_script_outputs = [ "generated/generated.rs" ]
35  epoch = "0.2"
36  features = [ "my-feature_a" ]
37  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
38}
39
40# Exists to test the case that a single crate has both a library
41# and a binary, to ensure that shared build products (e.g. the
42# build script) don't conflict.
43cargo_crate("test_rlib_crate_associated_bin") {
44  crate_root = "crate/src/main.rs"
45  crate_type = "bin"
46  sources = [ "crate/src/main.rs" ]
47  build_sources = [ "crate/build.rs" ]
48  build_root = "crate/build.rs"
49  features = [
50    "my-feature_a",
51    "my-feature_b",
52  ]
53  rustenv = [ "ENV_VAR_FOR_BUILD_SCRIPT=42" ]
54  deps = [ ":target1" ]
55}
56