@@ -2472,3 +2472,85 @@ fn all_features_merges_with_features() {
2472
2472
. with_stdout ( "it works" )
2473
2473
. run ( ) ;
2474
2474
}
2475
+
2476
+ #[ cargo_test]
2477
+ fn dep_with_optional_host_deps_activated ( ) {
2478
+ // To prevent regression like rust-lang/cargo#11330
2479
+ Package :: new ( "serde_derive" , "0.1.0" )
2480
+ . feature ( "derive" , & [ "dep:serde_derive" ] )
2481
+ . file ( "src/lib.rs" , "" )
2482
+ . publish ( ) ;
2483
+
2484
+ Package :: new ( "serde" , "0.1.0" )
2485
+ . feature ( "derive" , & [ "dep:serde_derive" ] )
2486
+ . dep ( "serde_derive" , "0.1.0" )
2487
+ . file ( "src/lib.rs" , "" )
2488
+ . publish ( ) ;
2489
+
2490
+ let p = project ( )
2491
+ . file (
2492
+ "Cargo.toml" ,
2493
+ r#"
2494
+ [package]
2495
+ name = "foo"
2496
+ version = "0.1.0"
2497
+ edition = "2021"
2498
+
2499
+ [dependencies]
2500
+ serde = { path = "serde", features = ["derive", "build"] }
2501
+ "# ,
2502
+ )
2503
+ . file ( "src/lib.rs" , "" )
2504
+ . file (
2505
+ "serde/Cargo.toml" ,
2506
+ r#"
2507
+ [package]
2508
+ name = "serde"
2509
+ version = "0.1.0"
2510
+ edition = "2021"
2511
+
2512
+ [dependencies]
2513
+ serde_derive = { path = "../serde_derive", optional = true }
2514
+
2515
+ [build-dependencies]
2516
+ serde_build = { path = "../serde_build", optional = true }
2517
+
2518
+ [features]
2519
+ derive = ["dep:serde_derive"]
2520
+ build = ["dep:serde_build"]
2521
+ "# ,
2522
+ )
2523
+ . file ( "serde/src/lib.rs" , "" )
2524
+ . file ( "serde/build.rs" , "fn main() {}" )
2525
+ . file (
2526
+ "serde_derive/Cargo.toml" ,
2527
+ r#"
2528
+ [package]
2529
+ name = "serde_derive"
2530
+ version = "0.1.0"
2531
+ edition = "2021"
2532
+
2533
+ [lib]
2534
+ proc-macro = true
2535
+ "# ,
2536
+ )
2537
+ . file ( "serde_derive/src/lib.rs" , "" )
2538
+ . file (
2539
+ "serde_build/Cargo.toml" ,
2540
+ & basic_manifest ( "serde_build" , "0.1.0" ) ,
2541
+ )
2542
+ . file ( "serde_build/src/lib.rs" , "" )
2543
+ . build ( ) ;
2544
+
2545
+ p. cargo ( "build" )
2546
+ . with_stderr (
2547
+ "\
2548
+ [COMPILING] serde_build v0.1.0 ([ROOT]/foo/serde_build)
2549
+ [COMPILING] serde_derive v0.1.0 ([ROOT]/foo/serde_derive)
2550
+ [COMPILING] serde v0.1.0 ([ROOT]/foo/serde)
2551
+ [COMPILING] foo v0.1.0 ([ROOT]/foo)
2552
+ [FINISHED] dev [..]
2553
+ " ,
2554
+ )
2555
+ . run ( ) ;
2556
+ }
0 commit comments