in build2cmake/src/main.rs [212:237]
fn check_or_infer_target_dir(
build_toml: impl AsRef<Path>,
target_dir: Option<PathBuf>,
) -> Result<PathBuf> {
let build_toml = build_toml.as_ref();
match target_dir {
Some(target_dir) => {
ensure!(
target_dir.is_dir(),
"`{}` is not a directory",
target_dir.to_string_lossy()
);
Ok(target_dir)
}
None => {
let absolute = std::path::absolute(build_toml)?;
match absolute.parent() {
Some(parent) => Ok(parent.to_owned()),
None => bail!(
"Cannot get parent path of `{}`",
build_toml.to_string_lossy()
),
}
}
}
}