Skip to content

Commit ffcbd8d

Browse files
committed
Add default 'package_id' link meta for crates (with value equal to 'name')
1 parent a594a99 commit ffcbd8d

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/librustc/back/link.rs

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,26 @@ pub fn build_link_meta(sess: Session,
634634
}
635635
}
636636

637+
fn crate_meta_pkgid(sess: Session, output: &Path, opt_pkg_id: Option<@str>)
638+
-> @str {
639+
match opt_pkg_id {
640+
Some(v) if !v.is_empty() => v,
641+
_ => {
642+
let pkg_id = session::expect(sess,
643+
output.filestem_str(),
644+
|| format!("output file name `{}` doesn't\
645+
appear to have a stem",
646+
output.display())).to_managed();
647+
if pkg_id.is_empty() {
648+
sess.fatal("missing crate link meta `package_id`, and the \
649+
inferred name is blank");
650+
}
651+
warn_missing(sess, "package_id", pkg_id);
652+
pkg_id
653+
}
654+
}
655+
}
656+
637657
let ProvidedMetas {
638658
name: opt_name,
639659
vers: opt_vers,
@@ -642,15 +662,16 @@ pub fn build_link_meta(sess: Session,
642662
} = provided_link_metas(sess, c);
643663
let name = crate_meta_name(sess, output, opt_name);
644664
let vers = crate_meta_vers(sess, opt_vers);
665+
let pkg_id = crate_meta_pkgid(sess, output, opt_pkg_id);
645666
let dep_hashes = cstore::get_dep_hashes(sess.cstore);
646667
let extras_hash =
647668
crate_meta_extras_hash(symbol_hasher, cmh_items,
648-
dep_hashes, opt_pkg_id);
669+
dep_hashes, Some(pkg_id));
649670

650671
LinkMeta {
651672
name: name,
652673
vers: vers,
653-
package_id: opt_pkg_id,
674+
package_id: Some(pkg_id),
654675
extras_hash: extras_hash
655676
}
656677
}

0 commit comments

Comments
 (0)