1946c348bSYuki OkushiFROM ubuntu:23.10
2599eec37SMarco A L Barbosa
3b34c268bSYuki OkushiRUN dpkg --add-architecture i386
4b34c268bSYuki OkushiRUN apt-get update
5b34c268bSYuki OkushiRUN apt-get install -y --no-install-recommends libc6-dev gcc
6b34c268bSYuki OkushiRUN apt-get install -y --no-install-recommends \
7599eec37SMarco A L Barbosa  file \
8b34c268bSYuki Okushi  wget \
9599eec37SMarco A L Barbosa  ca-certificates \
108de521cfSYuki Okushi  python3 \
118de521cfSYuki Okushi  python3-distutils \
12599eec37SMarco A L Barbosa  unzip \
13599eec37SMarco A L Barbosa  expect \
14eb0794a5Sgnzlbg  openjdk-8-jre \
15599eec37SMarco A L Barbosa  libstdc++6:i386 \
16b34c268bSYuki Okushi  libpulse0
17599eec37SMarco A L Barbosa
18599eec37SMarco A L BarbosaWORKDIR /android/
19599eec37SMarco A L BarbosaCOPY android* /android/
20599eec37SMarco A L Barbosa
21599eec37SMarco A L BarbosaENV ANDROID_ARCH=i686
22*73fc0898SYuki OkushiENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
23599eec37SMarco A L Barbosa
24*73fc0898SYuki OkushiRUN sh /android/android-install-ndk.sh
25599eec37SMarco A L BarbosaRUN sh /android/android-install-sdk.sh $ANDROID_ARCH
26599eec37SMarco A L BarbosaRUN mv /root/.android /tmp
27599eec37SMarco A L BarbosaRUN chmod 777 -R /tmp/.android
28d565a360SYuki OkushiRUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
29599eec37SMarco A L Barbosa
30599eec37SMarco A L BarbosaENV PATH=$PATH:/rust/bin \
31*73fc0898SYuki Okushi    CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android28-clang \
32d4240220SAlex Crichton    CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
33*73fc0898SYuki Okushi    CC_i686_linux_android=i686-linux-android28-clang \
34*73fc0898SYuki Okushi    AR_i686_linux_android=llvm-ar \
35599eec37SMarco A L Barbosa    HOME=/tmp
36d4240220SAlex Crichton
37d4240220SAlex CrichtonADD runtest-android.rs /tmp/runtest.rs
38d4240220SAlex CrichtonENTRYPOINT [ \
39d4240220SAlex Crichton  "bash", \
40d4240220SAlex Crichton  "-c", \
41d4240220SAlex Crichton  # set SHELL so android can detect a 64bits system, see
42d4240220SAlex Crichton  # http://stackoverflow.com/a/41789144
43a9115d5eSMarco A L Barbosa  "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \
44d4240220SAlex Crichton   rustc /tmp/runtest.rs -o /tmp/runtest && \
45d4240220SAlex Crichton   exec \"$@\"", \
46d4240220SAlex Crichton  "--" \
47d4240220SAlex Crichton]
48