-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathenvironment
126 lines (117 loc) · 4.23 KB
/
environment
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/sh
# usage: source environment [optional: ios-arm64, ios-sim, android-arm64-v8a, android-armeabi-v7a, android-x86_64, mingw-w64]
ARG=$1
if [[ -z "$ARG" ]]; then
echo "setting compiler for native build";
elif [ "ios-arm64" == "$ARG" ]; then
echo "setting compiler for Apple iOS (only 64bit)";
elif [ "ios-sim" == "$ARG" ]; then
echo "setting compiler for Apple iOS Simulator";
elif [ "android-arm64-v8a" == "$ARG" ]; then
echo "setting compiler for Android arm64-v8a";
elif [ "android-armeabi-v7a" == "$ARG" ]; then
echo "setting compiler for Android armeabi-v7a";
elif [ "android-x86_64" == "$ARG" ]; then
echo "setting compiler for Android x86_64";
elif [ "mingw-w64" == "$ARG" ]; then
echo "setting compiler for Windows x86_64";
else
echo "no suitable platform found, options are 'ios-arm64', 'ios-sim', 'android-arm64-v8a', 'android-armeabi-v7a', 'android-x86_64', 'mingw-w64']"
return 1
fi
ANDROIDREGEX="^(android)"
# check Android env vars
if [[ "$ARG" =~ $ANDROIDREGEX ]]; then
echo "checking env vars for Android";
if [[ -z "$ANDROID_NDK" ]]; then
echo "ANDROID_NDK not defined! Example: 'export ANDROID_NDK=/usr/local/android-ndk-r21'";
return 1
fi
if [[ -z "$ANDROID_HOST_TAG" ]]; then
echo "ANDROID_HOST_TAG not defined! Example: 'export ANDROID_HOST_TAG=darwin-x86_64' for macOS";
return 1
fi
# sample ANDROID definitions and paths for macOS
# export ANDROID_NDK=/usr/local/android-ndk-r21
# export ANDROID_HOST_TAG=darwin-x86_64
echo "using ANDROID_NDK=$ANDROID_NDK";
echo "using ANDROID_HOST_TAG=$ANDROID_HOST_TAG";
export PATH=${ANDROID_NDK}/toolchains/llvm/prebuilt/${ANDROID_HOST_TAG}/bin:${PATH};
echo "using PATH=${PATH}";
fi
# common
BSPJOB=$(getconf _NPROCESSORS_ONLN)
BSPROOT=$(cd $(dirname "${BASH_SOURCE[0]}") >/dev/null && pwd)
# platform
if [[ -z "$ARG" ]]; then
BSPCC=gcc
BSPCXX=g++
BSPHOST=
BSPPREFIX=
BSPCFLAGS="-fPIC"
BSPLDFLAGS=
BSPPLATFORM=$(arch)
elif [ "ios-arm64" == "$ARG" ]; then
BSPCC=$(xcrun --sdk iphoneos -f clang)
BSPCXX=$(xcrun --sdk iphoneos -f clang++)
BSPHOST="--host=aarch64-apple-darwin"
BSPPREFIX=
BSPCFLAGS="-arch arm64 -miphoneos-version-min=12.1 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -fno-common"
BSPLDFLAGS=
BSPPLATFORM=ios-arm64
elif [ "ios-sim" == "$ARG" ]; then
BSPCC=$(xcrun --sdk iphonesimulator -f clang)
BSPCXX=$(xcrun --sdk iphonesimulator -f clang++)
BSPHOST="--host=x86_64-apple-darwin"
BSPPREFIX=
BSPCFLAGS="-arch x86_64 -miphonesimulator-version-min=12.1 -isysroot $(xcrun --sdk iphonesimulator --show-sdk-path)"
BSPLDFLAGS=
BSPPLATFORM=ios-sim
elif [ "android-arm64-v8a" == "$ARG" ]; then
BSPCC=aarch64-linux-android21-clang
BSPCXX=aarch64-linux-android21-clang++
BSPHOST="--host aarch64-linux-android"
BSPPREFIX=aarch64-linux-android
BSPCFLAGS="-fPIC"
BSPLDFLAGS=
BSPPLATFORM=android-arm64-v8a
elif [ "android-armeabi-v7a" == "$ARG" ]; then
BSPCC=armv7a-linux-androideabi21-clang
BSPCXX=armv7a-linux-androideabi21-clang++
BSPHOST="--host arm-linux-androideabi"
BSPPREFIX=arm-linux-androideabi
BSPCFLAGS="-fPIC"
BSPLDFLAGS=
BSPPLATFORM=android-armeabi-v7a
elif [ "android-x86_64" == "$ARG" ]; then
BSPCC=x86_64-linux-android21-clang
BSPCXX=x86_64-linux-android21-clang++
BSPHOST="--host x86_64-linux-android"
BSPPREFIX=x86_64-linux-android
BSPCFLAGS="-fPIC"
BSPLDFLAGS=
BSPPLATFORM=android-x86_64
elif [ "mingw-w64" == "$ARG" ]; then
BSPCC=x86_64-w64-mingw32-gcc
BSPCXX=x86_64-w64-mingw32-g++
BSPHOST="--host x86_64-w64-mingw32"
BSPPREFIX=x86_64-w64-mingw32
BSPCFLAGS="-fPIC"
BSPLDFLAGS=
BSPPLATFORM=mingw-w64
fi
# debugging & profiling
BSPEXTRAFLAGS=
# tools and output
BSPTOOLS=${BSPROOT}/tools-out
BSPROOTFS=${BSPROOT}/packages-out/${BSPPLATFORM}
PATH=${BSPTOOLS}/bin:${PATH}
export BSPJOB BSPROOT BSPCC BSPCXX BSPHOST BSPPREFIX BSPCFLAGS BSPLDFLAGS BSPPLATFORM BSPEXTRAFLAGS BSPTOOLS BSPROOTFS PATH
echo "using settings:"
echo " BSPCC=$BSPCC"
echo " BSPCXX=$BSPCXX"
echo " BSPHOST=$BSPHOST"
echo " BSPPREFIX=$BSPPREFIX"
echo " BSPCFLAGS=$BSPCFLAGS"
echo " BSPLDFLAGS=$BSPLDFLAGS"
echo " BSPPLATFORM=$BSPPLATFORM"