Skip to content

Commit 54cc04f

Browse files
committed
Rename to artifact-dir in config.toml too
1 parent c08c510 commit 54cc04f

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

src/bin/cargo/commands/build.rs

+30-4
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,44 @@ pub fn exec(gctx: &mut GlobalContext, args: &ArgMatches) -> CliResult {
5050
let mut compile_opts =
5151
args.compile_options(gctx, CompileMode::Build, Some(&ws), ProfileChecking::Custom)?;
5252

53-
let mut artifact_dir_arg = args.value_of_path("artifact-dir", gctx);
53+
// If the user specifies `--artifact-dir`, use that
54+
let mut artifact_dir = args.value_of_path("artifact-dir", gctx);
5455

55-
if artifact_dir_arg.is_none() {
56+
// `--out-dir` is deprecated, but still supported for now
57+
if artifact_dir.is_none() {
5658
let out_dir_arg = args.value_of_path("out-dir", gctx);
5759
if out_dir_arg.is_some() {
5860
gctx.shell()
5961
.warn("the --out-dir flag has been changed to --artifact-dir")?;
6062
}
61-
artifact_dir_arg = out_dir_arg
63+
artifact_dir = out_dir_arg
6264
}
6365

64-
if let Some(artifact_dir) = artifact_dir_arg {
66+
// If a CLI option is not specified for choosing the artifact dir, use the `artifact-dir` from the build config, if
67+
// present
68+
if artifact_dir.is_none() {
69+
artifact_dir = gctx
70+
.build_config()?
71+
.artifact_dir
72+
.as_ref()
73+
.map(|path| path.resolve_path(gctx));
74+
}
75+
76+
// As a last priority, check `out-dir` in the build config
77+
if artifact_dir.is_none() {
78+
let out_dir = gctx
79+
.build_config()?
80+
.out_dir
81+
.as_ref()
82+
.map(|path| path.resolve_path(gctx));
83+
if out_dir.is_some() {
84+
gctx.shell()
85+
.warn("the out-dir config option has been changed to artifact-dir")?;
86+
}
87+
artifact_dir = out_dir;
88+
}
89+
90+
if let Some(artifact_dir) = artifact_dir {
6591
compile_opts.build_config.export_dir = Some(artifact_dir);
6692
} else if let Some(out_dir) = gctx.build_config()?.out_dir.as_ref() {
6793
let artifact_dir = out_dir.resolve_path(gctx);

src/cargo/util/context/mod.rs

+2
Original file line numberDiff line numberDiff line change
@@ -2577,7 +2577,9 @@ pub struct CargoBuildConfig {
25772577
pub rustc_workspace_wrapper: Option<ConfigRelativePath>,
25782578
pub rustc: Option<ConfigRelativePath>,
25792579
pub rustdoc: Option<ConfigRelativePath>,
2580+
// deprecated alias for artifact-dir
25802581
pub out_dir: Option<ConfigRelativePath>,
2582+
pub artifact_dir: Option<ConfigRelativePath>,
25812583
}
25822584

25832585
/// Configuration for `build.target`.

0 commit comments

Comments
 (0)