@@ -15,7 +15,9 @@ use serde::{Deserialize, Deserializer, Serialize};
1515
1616/// Environment configuration
1717#[ derive( Debug , Serialize , Deserialize , PartialEq , Eq , Default ) ]
18+ #[ serde( rename_all = "kebab-case" ) ]
1819pub struct CrossEnvConfig {
20+ ignore_cargo_config : Option < bool > ,
1921 volumes : Option < Vec < String > > ,
2022 passthrough : Option < Vec < String > > ,
2123}
@@ -74,6 +76,7 @@ impl FromStr for CrossTargetDockerfileConfig {
7476
7577/// Cross configuration
7678#[ derive( Debug , Serialize , Deserialize , PartialEq , Eq , Default ) ]
79+ #[ serde( rename_all = "kebab-case" ) ]
7780pub struct CrossToml {
7881 #[ serde( default , rename = "target" ) ]
7982 pub targets : HashMap < Target , CrossTargetConfig > ,
@@ -321,6 +324,15 @@ impl CrossToml {
321324 self . get_value ( target, |b| b. build_std , |t| t. build_std )
322325 }
323326
327+ /// Returns the whether to ignore cargo config files.
328+ pub fn env_ignore_cargo_config ( & self , target : & Target ) -> ( Option < bool > , Option < bool > ) {
329+ self . get_value (
330+ target,
331+ |b| b. env . ignore_cargo_config ,
332+ |t| t. env . ignore_cargo_config ,
333+ )
334+ }
335+
324336 /// Returns the list of environment variables to pass through for `build` and `target`
325337 pub fn env_passthrough ( & self , target : & Target ) -> ( Option < & [ String ] > , Option < & [ String ] > ) {
326338 self . get_ref (
@@ -537,6 +549,7 @@ mod tests {
537549 targets : HashMap :: new ( ) ,
538550 build : CrossBuildConfig {
539551 env : CrossEnvConfig {
552+ ignore_cargo_config : Some ( false ) ,
540553 volumes : Some ( vec ! [ s!( "VOL1_ARG" ) , s!( "VOL2_ARG" ) ] ) ,
541554 passthrough : Some ( vec ! [ s!( "VAR1" ) , s!( "VAR2" ) ] ) ,
542555 } ,
@@ -554,6 +567,7 @@ mod tests {
554567 pre-build = ["echo 'Hello World!'"]
555568
556569 [build.env]
570+ ignore-cargo-config = false
557571 volumes = ["VOL1_ARG", "VOL2_ARG"]
558572 passthrough = ["VAR1", "VAR2"]
559573 "# ;
@@ -574,6 +588,7 @@ mod tests {
574588 } ,
575589 CrossTargetConfig {
576590 env : CrossEnvConfig {
591+ ignore_cargo_config : None ,
577592 passthrough : Some ( vec ! [ s!( "VAR1" ) , s!( "VAR2" ) ] ) ,
578593 volumes : Some ( vec ! [ s!( "VOL1_ARG" ) , s!( "VOL2_ARG" ) ] ) ,
579594 } ,
@@ -628,6 +643,7 @@ mod tests {
628643 pre_build : Some ( PreBuild :: Lines ( vec ! [ s!( "echo 'Hello'" ) ] ) ) ,
629644 runner : None ,
630645 env : CrossEnvConfig {
646+ ignore_cargo_config : None ,
631647 passthrough : None ,
632648 volumes : Some ( vec ! [ s!( "VOL" ) ] ) ,
633649 } ,
@@ -638,6 +654,7 @@ mod tests {
638654 targets : target_map,
639655 build : CrossBuildConfig {
640656 env : CrossEnvConfig {
657+ ignore_cargo_config : Some ( true ) ,
641658 volumes : None ,
642659 passthrough : Some ( vec ! [ ] ) ,
643660 } ,
@@ -655,6 +672,7 @@ mod tests {
655672 pre-build = []
656673
657674 [build.env]
675+ ignore-cargo-config = true
658676 passthrough = []
659677
660678 [target.aarch64-unknown-linux-gnu]
@@ -696,6 +714,7 @@ mod tests {
696714 targets : HashMap :: new ( ) ,
697715 build : CrossBuildConfig {
698716 env : CrossEnvConfig {
717+ ignore_cargo_config : None ,
699718 passthrough : None ,
700719 volumes : None ,
701720 } ,
0 commit comments