@@ -56,6 +56,7 @@ const CARGO_MAKE_CARGO_PROFILE_ENV_VAR: &str = "CARGO_MAKE_CARGO_PROFILE";
5656const CARGO_MAKE_CRATE_TARGET_TRIPLE_ENV_VAR : & str = "CARGO_MAKE_CRATE_TARGET_TRIPLE" ;
5757const CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY_ENV_VAR : & str =
5858 "CARGO_MAKE_CRATE_CUSTOM_TRIPLE_TARGET_DIRECTORY" ;
59+ const CARGO_MAKE_CRATE_TARGET_DIRECTORY_ENV_VAR : & str = "CARGO_MAKE_CRATE_TARGET_DIRECTORY" ;
5960const CARGO_MAKE_RUST_DEFAULT_TOOLCHAIN_ENV_VAR : & str = "CARGO_MAKE_RUST_DEFAULT_TOOLCHAIN" ;
6061const CARGO_MAKE_CRATE_NAME_ENV_VAR : & str = "CARGO_MAKE_CRATE_NAME" ;
6162const CARGO_MAKE_CRATE_FS_NAME_ENV_VAR : & str = "CARGO_MAKE_CRATE_FS_NAME" ;
@@ -791,8 +792,9 @@ pub fn copy_to_driver_package_folder<P: AsRef<Path>>(path_to_copy: P) -> Result<
791792///
792793/// # Panics
793794///
794- /// This function will panic if the `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY`
795- /// environment variable is not set
795+ /// This function will panic if neither the
796+ /// `CARGO_MAKE_CRATE_TARGET_DIRECTORY` nor the
797+ /// `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY` environment variables are set.
796798pub fn load_rust_driver_makefile ( ) -> Result < ( ) , ConfigError > {
797799 load_wdk_build_makefile ( RUST_DRIVER_MAKEFILE_NAME )
798800}
@@ -815,8 +817,9 @@ pub fn load_rust_driver_makefile() -> Result<(), ConfigError> {
815817///
816818/// # Panics
817819///
818- /// This function will panic if the `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY`
819- /// environment variable is not set
820+ /// This function will panic if neither the
821+ /// `CARGO_MAKE_CRATE_TARGET_DIRECTORY` nor the
822+ /// `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY` environment variables are set.
820823pub fn load_rust_driver_sample_makefile ( ) -> Result < ( ) , ConfigError > {
821824 load_wdk_build_makefile ( RUST_DRIVER_SAMPLE_MAKEFILE_NAME )
822825}
@@ -845,8 +848,9 @@ pub fn load_rust_driver_sample_makefile() -> Result<(), ConfigError> {
845848///
846849/// # Panics
847850///
848- /// This function will panic if the `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY`
849- /// environment variable is not set
851+ /// This function will panic if neither the
852+ /// `CARGO_MAKE_CRATE_TARGET_DIRECTORY` nor the
853+ /// `CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY` environment variables are set.
850854#[ instrument( level = "trace" ) ]
851855fn load_wdk_build_makefile < S : AsRef < str > + AsRef < Utf8Path > + AsRef < Path > + fmt:: Debug > (
852856 makefile_name : S ,
@@ -882,14 +886,17 @@ fn load_wdk_build_makefile<S: AsRef<str> + AsRef<Utf8Path> + AsRef<Path> + fmt::
882886 . join ( & makefile_name)
883887 . into_std_path_buf ( ) ;
884888
885- let cargo_make_workspace_working_directory =
886- env:: var ( CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY_ENV_VAR ) . unwrap_or_else ( |_| {
887- panic ! ( "{CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY_ENV_VAR} should be set by cargo-make" )
888- } ) ;
889-
890- let destination_path = Path :: new ( & cargo_make_workspace_working_directory)
891- . join ( "target" )
892- . join ( & makefile_name) ;
889+ let destination_path = env:: var ( CARGO_MAKE_CRATE_TARGET_DIRECTORY_ENV_VAR ) . map_or_else (
890+ |_| {
891+ let cargo_make_workspace_working_directory =
892+ env:: var ( CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY_ENV_VAR ) . unwrap_or_else ( |_| {
893+ panic ! ( "Either {CARGO_MAKE_CRATE_TARGET_DIRECTORY_ENV_VAR} or {CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY_ENV_VAR} should be set by cargo-make" )
894+ } ) ;
895+ Path :: new ( & cargo_make_workspace_working_directory)
896+ . join ( "target" )
897+ } ,
898+ PathBuf :: from,
899+ ) . join ( & makefile_name) ;
893900
894901 // Only create a new symlink if the existing one is not already pointing to the
895902 // correct file
0 commit comments