Last active
May 12, 2021 11:17
-
-
Save thilong/8f25e16f5c97d5f02309e562a994024a to your computer and use it in GitHub Desktop.
emu-ex-plus-alpha 在 WSL 中编译方法
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://github.com/Rakashazi/emu-ex-plus-alpha | |
#1. WSL中安装 ubuntu 20.04, 但make无法使用文件内的相对路径,所以需要手动添加include | |
# 如: imagine/bundle/all/src/boost/android-armv7.mk : | |
# ../../ -> include ../../ | |
#2. gradle无法识别相对路径,每个模拟器代码需要做如下变更: | |
# 如: GBA.emu/res/android/proguard.cfg内: | |
# ../../../EmuFramewor -> @<imagine.path>/../EmuFramework | |
#目录跳转 | |
if [[ $0 =~ ^\/.* ]] | |
then | |
script=$0 | |
else | |
script=$(pwd)/$0 | |
fi | |
script_path=${script%/*} | |
# install once | |
sudo apt-get update | |
sudo apt-get install -y zip | |
sudo apt-get install -y autoconf | |
sudo apt-get install -y automake | |
sudo apt-get install -y autopoint | |
sudo apt-get install -y bash | |
sudo apt-get install -y clang | |
sudo apt-get install -y file | |
sudo apt-get install -y gawk | |
sudo apt-get install -y gettext | |
sudo apt-get install -y git | |
sudo apt-get install -y libtool | |
sudo apt-get install -y libtool-bin | |
sudo apt-get install -y llvm | |
sudo apt-get install -y make | |
sudo apt-get install -y openjdk-8-jdk | |
sudo apt-get install -y pkg-config | |
sudo apt-get install -y unzip | |
mkdir imagine-sdk | |
mkdir EX-Emulators | |
export WORKSPACE="${script_path}" | |
export ANDROID_HOME=/mnt/d/Library/Android/SDK-linux | |
export ANDROID_NDK_PATH=/mnt/d/Library/Android/SDK-linux/ndk/linux-android-ndk-r22 | |
export PATH=${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/cmdline-tools/latest:${ANDROID_HOME}/cmdline-tools/latest/bin:${PATH} | |
export EMUFRAMEWORK_PATH="${script_path}/EmuFramework" | |
export IMAGINE_PATH="${script_path}/imagine" | |
export IMAGINE_SDK_PATH="${script_path}/imagine-sdk" | |
echo y | sdkmanager "cmake;3.10.2.4988404" | |
echo y | sdkmanager "build-tools;29.0.2" | |
echo y | sdkmanager "platforms;android-29" | |
cd ${ANDROID_HOME}/ndk | |
wget -q https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip | |
unzip -qq ./android-ndk-r22-linux-x86_64.zip | |
cd $WORKSPACE | |
cp -f .github/workflows/01-change-signing-to-debug.patch imagine/make/gradle/app/ | |
cd $WORKSPACE/imagine/make/gradle/app/ | |
patch -p 1 -i 01-change-signing-to-debug.patch | |
rm 01-change-signing-to-debug.patch | |
cd $WORKSPACE | |
cp -f .github/workflows/02-change-bundle-to-apk.patch imagine/make/shortcut/meta-builds/ | |
cd $WORKSPACE/imagine/make/shortcut/meta-builds | |
patch -p 1 -i 02-change-bundle-to-apk.patch | |
rm 02-change-bundle-to-apk.patch | |
# Remove /tmp/imagine_bundle if you want to clean imagine built files. | |
cd $WORKSPACE/imagine/bundle/all | |
chmod +x ./makeAll-android.sh | |
./makeAll-android.sh install | |
cd $IMAGINE_PATH | |
make -f $IMAGINE_PATH/android-release.mk install V=1 -j2 | |
cd ${IMAGINE_PATH}/EmuFramework | |
make -f $EMUFRAMEWORK_PATH/android-release.mk config -j2 | |
make -f $EMUFRAMEWORK_PATH/android-release.mk install V=1 -j2 | |
# set gradle key store here. | |
rm ~/.gradle/gradle.properties | |
echo "ANDROID_KEY_ALIAS=cert" >> ~/.gradle/gradle.properties | |
echo "ANDROID_KEY_PASSWORD=cg123abc" >> ~/.gradle/gradle.properties | |
echo "ANDROID_KEY_STORE=${WORKSPACE}/CERT.keystore" >> ~/.gradle/gradle.properties | |
echo "ANDROID_KEY_STORE_PASSWORD=cg123abc" >> ~/.gradle/gradle.properties | |
# emulators | |
cd $WORKSPACE | |
sh build_emu.sh | |
# build_emu.sh的内容: | |
#mkdir $WORKSPACE/Libs | |
#mkdir $WORKSPACE/Libs/arm64-v8a | |
#mkdir $WORKSPACE/Libs/armeabi-v7a | |
#mkdir $WORKSPACE/Libs/x86 | |
#mkdir $WORKSPACE/Libs/x86_64 | |
#for emu in "GBA" "GBC" "MD" "MSX" "NEO" "NES" "NGP" "PCE" ; do | |
# | |
# cd $WORKSPACE/${emu}.emu | |
# make -f android-release.mk V=1 -j2 | |
# cp target/android-release/src/main/jniLibs/arm64-v8a/libmain.so $WORKSPACE/Libs/arm64-v8a/lib${emu}main.so | |
# cp target/android-release/src/main/jniLibs/armeabi-v7a/libmain.so $WORKSPACE/Libs/armeabi-v7a/lib${emu}main.so | |
# cp target/android-release/src/main/jniLibs/x86/libmain.so $WORKSPACE/Libs/x86/lib${emu}main.so | |
# cp target/android-release/src/main/jniLibs/x86_64/libmain.so $WORKSPACE/Libs/x86_64/lib${emu}main.so | |
#done | |
#cd $WORKSPACE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment