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