servo / servo

Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine
https://servo.org
Mozilla Public License 2.0
28.11k stars 3.01k forks source link

android build should leave android project directory easily accessible #7235

Closed metajack closed 8 years ago

metajack commented 9 years ago

It should also make sure that the bits ndk-gdb wants are there as well. I believe this is just a static copy of the gdbserver binary for the target ABI as well as a gdb.setup file which points to the NDK location.

Something like:

./mach build --android --dev
# install to device
ndk-gdb --project=.android

cc @larsbergstrom

metajack commented 9 years ago

Note that running V=1 ndk-build in a sample directory gives the hints at how to do this:

[armeabi] Gdbserver      : [arm-linux-androideabi-4.8] libs/armeabi/gdbserver
install -p /Users/jack/android-ndk-r10e/prebuilt/android-arm/gdbserver/gdbserver ./libs/armeabi/gdbserver
[armeabi] Gdbsetup       : libs/armeabi/gdb.setup
echo "set solib-search-path ./obj/local/armeabi" > ./libs/armeabi/gdb.setup
echo "source /Users/jack/android-ndk-r10e/prebuilt/common/gdb/common.setup" >> ./libs/armeabi/gdb.setup
echo "directory /Users/jack/android-ndk-r10e/platforms/android-3/arch-arm/usr/include jni /Users/jack/android-ndk-r10e/sources/cxx-stl/system" >> ./libs/armeabi/gdb.setup
larsbergstrom commented 9 years ago

I'm removing all of this stuff. Basically, I'm: 1) Changing servo to build to a shared library on Android 2) Moving the APK generation stuff in-tree 3) Adding a new mach command to build the APK packaging

I'll probably add mach commands for deployment & debugging, too, since they're so hard right now.

A separate issue is that even if we remove the APK builder, we're still using the tightly-interlinked glutin & android_glue, which does not support routing many of the native events back to Rust. We may have to either fork or return to glut on Android, as some of that routing will necessarily be Servo-specific (e.g., related to browser activities/intents) and will be difficult to upstream.

mbrubeck commented 8 years ago

This is fixed by #8288. The project directory is in support/android/apk.