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