Exclude CARGO_HOME from generate-copyright in-tree determination
This commit is contained in:
parent
a8e4c68dcb
commit
f886925ed3
3 changed files with 19 additions and 6 deletions
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
use std::path::PathBuf;
|
||||
|
||||
use crate::Mode;
|
||||
use crate::core::build_steps::dist::distdir;
|
||||
use crate::core::build_steps::test;
|
||||
use crate::core::build_steps::tool::{self, SourceType, Tool};
|
||||
|
|
@ -14,6 +13,7 @@ use crate::core::builder::{Builder, Kind, RunConfig, ShouldRun, Step};
|
|||
use crate::core::config::TargetSelection;
|
||||
use crate::core::config::flags::get_completion;
|
||||
use crate::utils::exec::command;
|
||||
use crate::{Mode, t};
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
|
||||
pub struct BuildManifest;
|
||||
|
|
@ -243,6 +243,7 @@ impl Step for GenerateCopyright {
|
|||
cmd.env("SRC_DIR", &builder.src);
|
||||
cmd.env("VENDOR_DIR", &vendored_sources);
|
||||
cmd.env("CARGO", &builder.initial_cargo);
|
||||
cmd.env("CARGO_HOME", t!(home::cargo_home()));
|
||||
// it is important that generate-copyright runs from the root of the
|
||||
// source tree, because it uses relative paths
|
||||
cmd.current_dir(&builder.src);
|
||||
|
|
|
|||
|
|
@ -46,11 +46,12 @@ pub struct PackageMetadata {
|
|||
/// covered it already.
|
||||
pub fn get_metadata_and_notices(
|
||||
cargo: &Path,
|
||||
cargo_home_path: &Path,
|
||||
vendor_path: &Path,
|
||||
root_path: &Path,
|
||||
manifest_paths: &[PathBuf],
|
||||
) -> Result<BTreeMap<Package, PackageMetadata>, Error> {
|
||||
let mut output = get_metadata(cargo, root_path, manifest_paths)?;
|
||||
let mut output = get_metadata(cargo, cargo_home_path, root_path, manifest_paths)?;
|
||||
|
||||
// Now for each dependency we found, go and grab any important looking files
|
||||
for (package, metadata) in output.iter_mut() {
|
||||
|
|
@ -66,6 +67,7 @@ pub fn get_metadata_and_notices(
|
|||
/// assume `reuse` has covered it already.
|
||||
pub fn get_metadata(
|
||||
cargo: &Path,
|
||||
cargo_home_path: &Path,
|
||||
root_path: &Path,
|
||||
manifest_paths: &[PathBuf],
|
||||
) -> Result<BTreeMap<Package, PackageMetadata>, Error> {
|
||||
|
|
@ -81,8 +83,11 @@ pub fn get_metadata(
|
|||
.manifest_path(manifest_path)
|
||||
.exec()?;
|
||||
for package in metadata.packages {
|
||||
let manifest_path = package.manifest_path.as_path();
|
||||
if manifest_path.starts_with(root_path) {
|
||||
let package_manifest_path = package.manifest_path.as_path();
|
||||
|
||||
if package_manifest_path.starts_with(root_path)
|
||||
&& !package_manifest_path.starts_with(cargo_home_path)
|
||||
{
|
||||
// it's an in-tree dependency and reuse covers it
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ mod cargo_metadata;
|
|||
///
|
||||
/// Run `x.py run generate-copyright`
|
||||
fn main() -> Result<(), Error> {
|
||||
let cargo_home = env_path("CARGO_HOME")?;
|
||||
let dest_file = env_path("DEST")?;
|
||||
let libstd_dest_file = env_path("DEST_LIBSTD")?;
|
||||
let src_dir = env_path("SRC_DIR")?;
|
||||
|
|
@ -39,11 +40,17 @@ fn main() -> Result<(), Error> {
|
|||
.collect::<Vec<_>>();
|
||||
|
||||
// Scan Cargo dependencies
|
||||
let mut collected_cargo_metadata =
|
||||
cargo_metadata::get_metadata_and_notices(&cargo, &vendor_dir, &src_dir, &cargo_manifests)?;
|
||||
let mut collected_cargo_metadata = cargo_metadata::get_metadata_and_notices(
|
||||
&cargo,
|
||||
&cargo_home,
|
||||
&vendor_dir,
|
||||
&src_dir,
|
||||
&cargo_manifests,
|
||||
)?;
|
||||
|
||||
let library_collected_cargo_metadata = cargo_metadata::get_metadata_and_notices(
|
||||
&cargo,
|
||||
&cargo_home,
|
||||
&vendor_dir,
|
||||
&src_dir,
|
||||
&library_manifests,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue