Bump NDK version and build all architectures

Summary: Until now we've been building only arm-v7 and x86 libraries.  This builds 64 bit versions too, and sets up the gradle script to publish them.  We also bump up the NDK version, and increase the min API to 21, as this is the first API supporting 64 bit NDK tools.

Reviewed By: emilsjolander

Differential Revision: D4674049

fbshipit-source-id: fbc87541fcaf72b83d376646c7aab70c317125e1
This commit is contained in:
Robert Spencer
2017-03-09 03:05:16 -08:00
committed by Facebook Github Bot
parent 01bf8d7b6c
commit 57898762a2
2 changed files with 35 additions and 17 deletions

View File

@@ -3,7 +3,7 @@
[android] [android]
target = Google Inc.:Google APIs:19 target = Google Inc.:Google APIs:19
[ndk] [ndk]
ndk_version = 12.1.2977051 ndk_version = 13.1.3345770
compiler = clang compiler = clang
app_platform = android-19 app_platform = android-21
cpu_abis = armv7, x86 cpu_abis = arm64, armv7, x86, x86_64

View File

@@ -1,21 +1,39 @@
#!/bin/bash #!/bin/bash
buck build //android:android DESTINATIONS=(
"build/buck-out/jniLibs/x86"
"build/buck-out/jniLibs/x86_64"
"build/buck-out/jniLibs/armeabi-v7a"
"build/buck-out/jniLibs/arm64-v8a"
)
X86_DEST=build/buck-out/jniLibs/x86 BUCK_TARGETS=(
ARMV7_DEST=build/buck-out/jniLibs/armeabi-v7a "android-x86"
"android-x86_64"
"android-armv7"
"android-arm64"
)
mkdir -p $X86_DEST # There must be a better way to get gnustl_shared than building the android target.
mkdir -p $ARMV7_DEST # But for now, we include that target simply for that shared library...
echo "Build libgnustl_shared.so"
~/mybuck/bin/buck build //android/sample:sample
cp ../buck-out/gen/java/jni#ARMV7,android-armv7,android-strip,libyoga.so,shared/libyoga.so $ARMV7_DEST cp "../buck-out/gen/android/sample/sample#X86,android-strip,libgnustl_shared.so/libgnustl_shared.so" "${DESTINATIONS[0]}"
cp ../buck-out/gen/java/jni#X86,android-strip,android-x86,libyoga.so,shared/libyoga.so $X86_DEST cp "../buck-out/gen/android/sample/sample#X86_64,android-strip,libgnustl_shared.so/libgnustl_shared.so" "${DESTINATIONS[1]}"
cp "../buck-out/gen/android/sample/sample#ARMV7,android-strip,libgnustl_shared.so/libgnustl_shared.so" "${DESTINATIONS[2]}"
cp "../buck-out/gen/android/sample/sample#ARM64,android-strip,libgnustl_shared.so/libgnustl_shared.so" "${DESTINATIONS[3]}"
cp ../buck-out/gen/yoga#ARMV7,android-armv7,android-strip,libyogacore.so,shared/libyogacore.so $ARMV7_DEST # This is to clean up after the mess above. Yes, it is required.
cp ../buck-out/gen/yoga#X86,android-strip,android-x86,libyogacore.so,shared/libyogacore.so $X86_DEST ~/mybuck/bin/buck clean
rm -r ../buck-out
cp ../buck-out/gen/lib/fb/fbjni#ARMV7,android-armv7,android-strip,liblib_fb_fbjni.so,shared/liblib_fb_fbjni.so $ARMV7_DEST for (( i=0; i<4; i++ ));
cp ../buck-out/gen/lib/fb/fbjni#X86,android-strip,android-x86,liblib_fb_fbjni.so,shared/liblib_fb_fbjni.so $X86_DEST do
echo "Build ${BUCK_TARGETS[i]}"
cp ../buck-out/gen/android/android#ARMV7,android-strip,libgnustl_shared.so/libgnustl_shared.so $ARMV7_DEST buck build "//java:jni#${BUCK_TARGETS[i]},shared"
cp ../buck-out/gen/android/android#X86,android-strip,libgnustl_shared.so/libgnustl_shared.so $X86_DEST mkdir -p ${DESTINATIONS[i]}
cp "../buck-out/gen/java/jni#${BUCK_TARGETS[i]},shared/libyoga.so" "${DESTINATIONS[i]}"
cp "../buck-out/gen/yoga#${BUCK_TARGETS[i]},shared/libyogacore.so" "${DESTINATIONS[i]}"
cp "../buck-out/gen/lib/fb/fbjni#${BUCK_TARGETS[i]},shared/liblib_fb_fbjni.so" "${DESTINATIONS[i]}"
done