Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
Add include_dirs to all libraries
Browse files Browse the repository at this point in the history
One can link directly to `rust_library` as well.

The current logic is brittle: not all crates explicitly list
crate-types, especially because not all crate types are available on all
platforms: e.g. specifying a crate-type staticlib or cdylib makes it
*impossible* to compile a crate to Wasm. On the other hand, crate
consumers are free to specify whatever crate type they'd like via cargo,
so not explicitly listing crate-types is a decent choice for crates.

So the current logic leaves out crates like `icu_capi`, which have
headers but don't have a `staticlib` crate-type.

Test: m cargo_embargo + crate_tool regenerate icu_capi

Change-Id: Iaf62f6abdcc5cd84090f37b1ddc200c9d64e8500
  • Loading branch information
Manish Goregaokar committed Jan 30, 2025
1 parent b04c59f commit 0ec10ed
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 6 deletions.
5 changes: 0 additions & 5 deletions tools/cargo_embargo/src/cargo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ impl CrateType {
pub fn is_test(self) -> bool {
matches!(self, Self::Test | Self::TestNoHarness)
}

/// Returns whether the crate type is a kind of C ABI library.
pub fn is_c_library(self) -> bool {
matches!(self, Self::CDyLib | Self::StaticLib)
}
}

/// Info extracted from `CargoOut` for a crate.
Expand Down
2 changes: 1 addition & 1 deletion tools/cargo_embargo/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1114,7 +1114,7 @@ fn crate_to_bp_modules(
if !crate_type.is_test() && package_cfg.host_supported && package_cfg.host_first_multilib {
m.props.set("compile_multilib", "first");
}
if crate_type.is_c_library() {
if crate_type.is_library() {
m.props.set_if_nonempty("include_dirs", package_cfg.exported_c_header_dir.clone());
}

Expand Down

0 comments on commit 0ec10ed

Please sign in to comment.