forked from CleverRaven/Cataclysm-DDA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_deps.sh
executable file
·113 lines (85 loc) · 2.6 KB
/
build_deps.sh
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
#!/bin/bash
### FIX HERE VERSION IF NECESSARY ###
### LINKS ARE AT THE END OF SCRIPT ###
SDL2_URL=https://github.com/katemonster33/SDL.git
SDL2_branch=cdda_android
SDL2_image_URL=https://github.com/libsdl-org/SDL_image.git
SDL2_image_branch=release-2.8.2
SDL2_mixer_URL=https://github.com/libsdl-org/SDL_mixer.git
SDL2_mixer_branch=release-2.8.0
SDL2_ttf_URL=https://github.com/libsdl-org/SDL_ttf.git
SDL2_ttf_branch=release-2.22.0
DEPS_ZIP_PATH=$(dir $1)/
# Global Variables #
NDK_DIR="/home/katie/android-ndk-r26b/"
INSTALL_DIR=$(pwd)
API="26"
function fix_sdl_mk
{
MK_ADDON=$'include $(CLEAR_VARS)\\\n'
MK_ADDON+=$'LOCAL_MODULE := SDL2\\\n'
MK_ADDON+=$'LOCAL_SRC_FILES := '"$(realpath ../deps/jni/SDL2/$ARCH)"$'/libSDL2.so\\\n'
MK_ADDON+=$'LOCAL_EXPORT_C_INCLUDES += '"$(realpath ../deps/jni/SDL2/include)"$'\\\n'
MK_ADDON+="include \$(PREBUILT_SHARED_LIBRARY)"
if [[ -e tmp.mk ]]; then mv -f tmp.mk Android.mk; fi
cp -fva Android.mk tmp.mk
sed -e $'/(call my-dir)/a\\\n'"$MK_ADDON" Android.mk 1<> Android.mk
}
function build_proj
{
cd $1
if [[ ! $1 == SDL2 ]]; then
fix_sdl_mk ;
fi
$NDK_DIR/ndk-build -C ./ \
NDK_PROJECT_PATH=$NDK_DIR \
APP_BUILD_SCRIPT=Android.mk \
APP_PLATFORM=android-$API \
APP_ABI=$ARCH $NDK_OPTIONS \
APP_ALLOW_MISSING_DEPS=$2 \
NDK_OUT=obj \
NDK_LIBS_OUT=../deps/jni/$1/
if [[ ! $1 == SDL2 ]]; then
rm ../deps/jni/$1/$ARCH/libSDL2.so
fi
cd ..
}
function clone_proj
{
if [[ ! -e "$1" ]] then
git clone "$2" -b "$3" --depth=1 "$1";
fi
}
#################################################################################
NDK=$NDK_DIR/ndk-build
if [[ ! -e "$NDK" ]]; then
echo "Can not find ndk-build in $NDK";
exit 1;
fi
mkdir -p build/deps
cd build/deps
rm -rf ./*
unzip ../../app/deps.zip #create deps folder
cd ..
clone_proj SDL2 $SDL2_URL $SDL2_branch
clone_proj SDL2_image $SDL2_image_URL $SDL2_image_branch
clone_proj SDL2_mixer $SDL2_mixer_URL $SDL2_mixer_branch
clone_proj SDL2_ttf $SDL2_ttf_URL $SDL2_ttf_branch
./SDL2_mixer/external/download.sh
./SDL2_ttf/external/download.sh
cp -f SDL2/include/*.h deps/jni/SDL2/include/
cp -f SDL2_image/include/*.h deps/jni/SDL2_image/
cp -f SDL2_mixer/include/*.h deps/jni/SDL2_mixer/
cp -f SDL2_ttf/SDL_ttf.h deps/jni/SDL2_ttf/
for ARCH in armeabi-v7a arm64-v8a x86 x86_64
do
build_proj SDL2 false
build_proj SDL2_image true
build_proj SDL2_image true
build_proj SDL2_mixer true
build_proj SDL2_ttf true
done
cd deps
zip ../deps.zip jni/ -r
cd ../..
echo "******** DONE ********"