109b8ed69STrevor GrossFROM ubuntu:24.10
2c2842463SAlex Crichton
3341b31e8SYuki OkushiRUN dpkg --add-architecture i386
4341b31e8SYuki OkushiRUN apt-get update
5341b31e8SYuki OkushiRUN apt-get install -y --no-install-recommends libc6-dev gcc
6341b31e8SYuki OkushiRUN apt-get install -y --no-install-recommends \
7c2842463SAlex Crichton  file \
89d9d15edSYuki Okushi  wget \
9c2842463SAlex Crichton  ca-certificates \
108de521cfSYuki Okushi  python3 \
11c2842463SAlex Crichton  unzip \
12c2842463SAlex Crichton  expect \
13eb0794a5Sgnzlbg  openjdk-8-jre \
14c2842463SAlex Crichton  libstdc++6:i386 \
15341b31e8SYuki Okushi  libpulse0
16c2842463SAlex Crichton
17c2842463SAlex CrichtonWORKDIR /android/
18599eec37SMarco A L BarbosaCOPY android* /android/
19c2842463SAlex Crichton
20599eec37SMarco A L BarbosaENV ANDROID_ARCH=arm
2173fc0898SYuki OkushiENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
22c2842463SAlex Crichton
23*3e48e4b2STrevor GrossRUN /android/android-install-ndk.sh
24*3e48e4b2STrevor GrossRUN /android/android-install-sdk.sh $ANDROID_ARCH
25599eec37SMarco A L BarbosaRUN mv /root/.android /tmp
26599eec37SMarco A L BarbosaRUN chmod 777 -R /tmp/.android
27d565a360SYuki OkushiRUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
28c2842463SAlex Crichton
29c2842463SAlex CrichtonENV PATH=$PATH:/rust/bin \
3073fc0898SYuki Okushi    CARGO_TARGET_ARM_LINUX_ANDROIDEABI_LINKER=armv7a-linux-androideabi28-clang \
31d4240220SAlex Crichton    CARGO_TARGET_ARM_LINUX_ANDROIDEABI_RUNNER=/tmp/runtest \
3273fc0898SYuki Okushi    CC_arm_linux_androideabi=armv7a-linux-androideabi28-clang \
3373fc0898SYuki Okushi    AR_arm_linux_androideabi=llvm-ar \
34c2842463SAlex Crichton    HOME=/tmp
35d4240220SAlex Crichton
36d4240220SAlex CrichtonADD runtest-android.rs /tmp/runtest.rs
37d4240220SAlex CrichtonENTRYPOINT [ \
38d4240220SAlex Crichton  "bash", \
39d4240220SAlex Crichton  "-c", \
40d4240220SAlex Crichton  # set SHELL so android can detect a 64bits system, see
41d4240220SAlex Crichton  # http://stackoverflow.com/a/41789144
42a9115d5eSMarco A L Barbosa  "SHELL=/bin/dash /android/sdk/emulator/emulator @arm -no-window & \
43d4240220SAlex Crichton   rustc /tmp/runtest.rs -o /tmp/runtest && \
44d4240220SAlex Crichton   exec \"$@\"", \
45d4240220SAlex Crichton  "--" \
46d4240220SAlex Crichton]
47