Skip to content

Commit

Permalink
export CFLAGS_ and CXXFLAGS_ when run cargo
Browse files Browse the repository at this point in the history
Although the changes in d6cdbf4
set up a `cflags_key` + `cxxflags_key` and values that would
pass `--target=<triple><api-level>` to the compiler; these
didn't actually get passed via `.env()` when building the
command to run cargo.

This means that the `cc` crate doesn't use the right api-level
when compiling C/C++ code since it doesn't find the
`CFLAGS_` and `CXXFLAGS_` that we intended to export.

This recently caused an issue while testing the game-activity
backend for android-activity on older versions of android because
when targeting levels < 29 then any use of the
`android_get_device_api_level` API needs to be inlined and
that isn't currently happening - which leads to a runtime failure
to lookup the symbol.

Ref: rust-mobile/android-activity#88 (comment)
  • Loading branch information
rib committed Jul 29, 2023
1 parent 02689f6 commit 838e597
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/cargo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,9 @@ pub(crate) fn run(
cargo_cmd
.current_dir(dir)
.env(&cc_key, &target_cc)
.env(&cflags_key, &target_cflags)
.env(&cxx_key, &target_cxx)
.env(&cxxflags_key, &target_cxxflags)
.env(&ar_key, &target_ar)
.env(&ranlib_key, &target_ranlib)
.env(cargo_ar_key, &target_ar)
Expand Down

0 comments on commit 838e597

Please sign in to comment.