forked from livecode/livecode
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathandroid.inc
More file actions
executable file
·91 lines (81 loc) · 2.68 KB
/
android.inc
File metadata and controls
executable file
·91 lines (81 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Android options
ANDROID_NDK=${ANDROID_NDK:-"${HOME}/android/toolchain/android-ndk"}
ANDROID_PLATFORM=${ANDROID_PLATFORM:-android-28}
function configureAndroidToolchain {
ANDROID_ARCH=$1
# Android architecture
if [ -z "${ANDROID_ARCH}" ] ; then
echo >&2 "Error: \${ANDROID_ARCH} must be set"
exit 1
fi
# Expected Android standalone toolchain directory name
case "${ANDROID_ARCH}" in
armv6|armv7)
ANDROID_STANDALONE_TOOLCHAIN_DIRNAME="standalone-arm"
;;
*)
ANDROID_STANDALONE_TOOLCHAIN_DIRNAME="standalone-${ANDROID_ARCH}"
;;
esac
# Expected Android target triple and architecture flag(s)
case "${ANDROID_ARCH}" in
armv6|armv7)
# Google recommends using Thumb instructions when targeting ARM.
ANDROID_TRIPLE=arm-linux-androideabi
if [ "${ANDROID_ARCH}" == "armv7" ] ; then
BUILD_ARCH=armv7a
else
BUILD_ARCH=armv6
fi
ANDROID_TARGET_FLAGS="-target ${ANDROID_TRIPLE} -march=${BUILD_ARCH} -mthumb"
;;
arm64)
ANDROID_TRIPLE=aarch64-linux-android
ANDROID_TARGET_FLAGS="-target ${ANDROID_TRIPLE}"
;;
x86)
ANDROID_TRIPLE=i686-linux-android
ANDROID_TARGET_FLAGS="-target ${ANDROID_TRIPLE} -march=i686"
;;
x86_64)
ANDROID_TRIPLE=x86_64-linux-android
ANDROID_TARGET_FLAGS="-target ${ANDROID_TRIPLE}"
;;
*)
ANDROID_TRIPLE=
ANDROID_TARGET_FLAGS=
;;
esac
# Has a full, custom toolchain been specified?
# AR, CC, CXX, LINK, OBJCOPY, RANLIB, STRIP
if [ ! -z "${OBJCOPY}" ] ; then
ANDROID_CC="${CC}"
ANDROID_CXX="${CXX}"
ANDROID_LINK="${LINK}"
else
# Attempt to set up the toolchain automatically
if [ -z "${ANDROID_TOOLCHAIN}" ] ; then
ANDROID_TOOLCHAIN="${HOME}/android/toolchain/${ANDROID_STANDALONE_TOOLCHAIN_DIRNAME}/bin/${ANDROID_TRIPLE}-"
# OpenSSL requires this to be set when cross-compiling for Android
export CROSS_SYSROOT="${HOME}/android/toolchain/${ANDROID_STANDALONE_TOOLCHAIN_DIRNAME}/sysroot"
else
# if not defined, derive CROSS_ROOT from ANDROID_TOOLCHAIN
if [ -z "${CROSS_SYSROOT}" ] ; then
export CROSS_SYSROOT="${ANDROID_TOOLCHAIN%/*/*}/sysroot"
fi
fi
ANDROID_CC_NAME=${ANDROID_CC_NAME:-clang}
ANDROID_CXX_NAME=${ANDROID_CXX_NAME:-clang++}
export ANDROID_CC="${ANDROID_TOOLCHAIN}${ANDROID_CC_NAME} ${ANDROID_TARGET_FLAGS}"
export ANDROID_CXX="${ANDROID_TOOLCHAIN}${ANDROID_CXX_NAME} ${ANDROID_TARGET_FLAGS}"
export ANDROID_LINK="${ANDROID_TOOLCHAIN}${ANDROID_CXX_NAME} ${ANDROID_TARGET_FLAGS}"
export ANDROID_AR="${ANDROID_TOOLCHAIN}ar"
export ANDROID_OBJCOPY="${ANDROID_TOOLCHAIN}objcopy"
export ANDROID_RANLIB="${ANDROID_TOOLCHAIN}ranlib"
export ANDROID_STRIP="${ANDROID_TOOLCHAIN}strip"
# ICU needs to know the Android triple being targeted.
export ANDROID_TRIPLE
fi
}
# Android architectures
export ARCHS="armv6 armv7 x86 x86_64"