BUILD.gn (1708B)
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 5 import("//chromium/build/rust/cargo_crate.gni") 6 7 cargo_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. 29 cargo_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. 45 cargo_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 }