Closed tyilo closed 1 year ago
What I said initially about it working when using cmake manually isn't actually true. It actually produces an ARM library!
...
$ cmake ..
$ make
$ file libturbojpeg.so
libturbojpeg.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=bfdd456a454cccf0753ab537403c0b941f8788a7, with debug_info, not stripped
Only when specifying ANDROID_ABI
as a cmake option does it work as expected:
...
$ cmake -DANDROID_ABI=$ANDROID_ABI ..
$ make
$ file ibturbojpeg.so
libturbojpeg.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0da1325a2a8aaaa9fe6c4ce418aef8924ef1ff41, with debug_info, not stripped
Thank you for reporting and fixing this issue!
I'm using the following environment variables to build for Android x86:
I can build
libjpeg-turbo
for Android x86 manually using CMake:However if I try to build a project using
turbojpeg-sys
with thecmake
feature, I get an error:If I inspect the file that rust is trying to link to (
/tmp/tmp.sk84AUqLbu/turbojpeg_android_test/target/i686-linux-android/debug/deps/libturbojpeg_sys-2ead15d1b4f80846.rlib(turbojpeg.c.o)
), I can see that it is an ARM object file and not a x86 object file as expected:If I instead try to build for Android armv7a with the following environment variables, then
cargo build
succeeds: