Check that library/profiler_builtins actually found some source files

The current `build.rs` will automatically skip source files that don't exist.
An unfortunate side-effect is that if _no_ files could be found (e.g. because
the directory was wrong), the build fails with a mysterious linker error.

We can reduce the awkwardness of this by explicitly checking that at least one
source file was found.
This commit is contained in:
Zalathar 2024-08-20 15:57:16 +10:00
parent eff09483c6
commit 585804fcee

View File

@ -84,12 +84,16 @@ fn main() {
let root = Path::new("../../src/llvm-project/compiler-rt"); let root = Path::new("../../src/llvm-project/compiler-rt");
let src_root = root.join("lib").join("profile"); let src_root = root.join("lib").join("profile");
assert!(src_root.exists(), "profiler runtime source directory not found: {src_root:?}");
let mut n_sources_found = 0u32;
for src in profile_sources { for src in profile_sources {
let path = src_root.join(src); let path = src_root.join(src);
if path.exists() { if path.exists() {
cfg.file(path); cfg.file(path);
n_sources_found += 1;
} }
} }
assert!(n_sources_found > 0, "couldn't find any profiler runtime source files in {src_root:?}");
cfg.include(root.join("include")); cfg.include(root.join("include"));
cfg.warnings(false); cfg.warnings(false);