@@ -10,34 +10,59 @@ RUN /cmake.sh
10
10
COPY xargo.sh /
11
11
RUN /xargo.sh
12
12
13
- COPY android-ndk.sh /
14
- RUN /android-ndk.sh x86 28
15
- ENV PATH=$PATH:/android-ndk/bin
16
-
17
- COPY android-system.sh /
18
- RUN /android-system.sh x86
19
-
20
13
# We could supposedly directly run i686 binaries like we do for x86_64, but
21
14
# doing so generates an assertion failure:
22
15
# ... assertion failed: signal(libc::SIGPIPE, libc::SIG_IGN) != libc::SIG_ERR
23
16
# ... src/libstd/sys/unix/mod.rs
24
17
# fatal runtime error: failed to initiate panic, error 5
25
18
#
26
- # Running with qemu works as expected
19
+ # Running with qemu works as expected. it also ensures that're we're
20
+ # running on a CPU that only supports 32-bit x86 systems.
27
21
COPY qemu.sh /
28
22
RUN /qemu.sh i386
29
23
24
+ ARG ANDROID_NDK=r21d
25
+ ARG ANDROID_SDK=28
26
+ ARG ANDROID_VERSION=9.0.0_r1
27
+ ARG ANDROID_SYSTEM_NONE=0
28
+ ARG ANDROID_SYSTEM_COMPLETE=0
29
+ ARG PYTHON_TMPDIR=/tmp/android
30
+
31
+ COPY validate-android-args.sh /
32
+ RUN /validate-android-args.sh x86
33
+
34
+ COPY android-ndk.sh /
35
+ RUN /android-ndk.sh x86
36
+ ENV PATH=$PATH:/android-ndk/bin
37
+
38
+ COPY android-system.sh /
39
+ RUN mkdir -p $PYTHON_TMPDIR
40
+ COPY android $PYTHON_TMPDIR
41
+ RUN /android-system.sh x86
42
+
30
43
ENV CROSS_SYSROOT=/android-ndk/sysroot
31
- RUN cp $CROSS_SYSROOT/usr/lib/i686-linux-android/28/libz.so /system/lib/
44
+ COPY android-symlink.sh /
45
+ RUN /android-symlink.sh i386 i686-linux-android
32
46
33
47
COPY android-runner /
34
48
35
49
# Libz is distributed in the android ndk, but for some unknown reason it is not
36
50
# found in the build process of some crates, so we explicit set the DEP_Z_ROOT
37
51
ENV CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android-gcc \
38
52
CARGO_TARGET_I686_LINUX_ANDROID_RUNNER="/android-runner i686" \
53
+ AR_i686_linux_android=i686-linux-android-ar \
54
+ AS_i686_linux_android=i686-linux-android-as \
39
55
CC_i686_linux_android=i686-linux-android-gcc \
40
56
CXX_i686_linux_android=i686-linux-android-g++ \
57
+ LD_i686_linux_android=i686-linux-android-ld \
58
+ NM_i686_linux_android=i686-linux-android-nm \
59
+ OBJCOPY_i686_linux_android=i686-linux-android-objcopy \
60
+ OBJDUMP_i686_linux_android=i686-linux-android-objdump \
61
+ RANLIB_i686_linux_android=i686-linux-android-ranlib \
62
+ READELF_i686_linux_android=i686-linux-android-readelf \
63
+ SIZE_i686_linux_android=i686-linux-android-size \
64
+ STRINGS_i686_linux_android=i686-linux-android-strings \
65
+ STRIP_i686_linux_android=i686-linux-android-strip \
41
66
BINDGEN_EXTRA_CLANG_ARGS_i686_linux_android="--sysroot=$CROSS_SYSROOT" \
42
67
DEP_Z_INCLUDE="$CROSS_SYSROOT/usr/include/" \
43
68
LIBZ_SYS_STATIC=1 \
0 commit comments