Android cross-compiled command line hello world

`cargo run` Just Works®
This commit is contained in:
Simon Sapin 2018-06-25 19:12:26 +02:00
parent 4cbf3dea05
commit eab971cba1
8 changed files with 37 additions and 1 deletions

1
.gitignore vendored
View file

@ -4,6 +4,7 @@
/.servobuild
/android-toolchains
/target
/support/android/egl-configs/target
/ports/android/bin
/ports/android/libs
/ports/android/local.properties

View file

@ -7,7 +7,7 @@ default-members = [
"ports/servo",
"tests/unit/*",
]
exclude = [".cargo"]
exclude = [".cargo", "support/android/egl-configs"]
[profile.release]
opt-level = 3

View file

@ -0,0 +1,6 @@
[build]
target = "armv7-linux-androideabi"
[target.armv7-linux-androideabi]
linker = "./ld.sh"
runner = "./run.sh"

4
support/android/egl-configs/Cargo.lock generated Normal file
View file

@ -0,0 +1,4 @@
[[package]]
name = "egl-configs"
version = "0.1.0"

View file

@ -0,0 +1,3 @@
[package]
name = "egl-configs"
version = "0.1.0"

View file

@ -0,0 +1,6 @@
#!/bin/sh
NDK=../../../android-toolchains/android-ndk-r12b-linux-x86_64/android-ndk-r12b
"${NDK}/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc" \
--sysroot "${NDK}/platforms/android-18/arch-arm" \
"$@"

View file

@ -0,0 +1,10 @@
#!/bin/sh
path="$1"
base="$(basename $1)"
remote_path="/data/local/tmp/$base"
shift
adb -e wait-for-device
adb -e push "$path" "$remote_path"
adb -e shell "$remote_path" "$@"

View file

@ -0,0 +1,6 @@
fn main() {
println!("Hello, world!");
for arg in std::env::args() {
println!("{}", arg);
}
}