Build android jni targets based on archs defined in Application.mk

This allows each core to define which archs it builds for.
Currently the scripts force build all archs even for cores that
cannot support them, ala dolphin on 32 bit archs.
This commit is contained in:
Aaron Kling 2018-04-16 12:01:35 -05:00
parent 16eb709cfe
commit 12cc3b777c

View File

@ -435,6 +435,13 @@ build_libretro_generic_jni() {
cd ${DIR} cd ${DIR}
cd ${SUBDIR} cd ${SUBDIR}
ABILIST=$(sed -n 's/APP_ABI *[:?]*= *//p' Application.mk)
if [ -z ${ABILIST} -o "${ABILIST}" == "all" ]; then
APPABIS=("${ABIS[@]}")
else
IFS=' ' read -ra APPABIS <<< "${ABILIST}"
fi
eval "set -- $CORES" eval "set -- $CORES"
for i do for i do
core="${i%:*}" core="${i%:*}"
@ -452,36 +459,39 @@ build_libretro_generic_jni() {
LIBNAM="libretro_${core}" LIBNAM="libretro_${core}"
fi fi
for a in "${ABIS[@]}"; do LOGFILE="$TMPDIR/log/${BOT}/${LOGDATE}/${LOGDATE}_${core}_${PLATFORM}.log"
LOGFILE="$TMPDIR/log/${BOT}/${LOGDATE}/${LOGDATE}_${core}_${PLATFORM}_${a}.log" echo -------------------------------------------------- | tee "$LOGFILE"
echo -------------------------------------------------- | tee "$LOGFILE" cat $TMPDIR/vars | tee -a "$LOGFILE"
cat $TMPDIR/vars | tee -a "$LOGFILE"
echo -------------------------------------------------- | tee -a "$LOGFILE" echo -------------------------------------------------- | tee -a "$LOGFILE"
if [ -z "${NOCLEAN}" ]; then if [ -z "${NOCLEAN}" ]; then
echo "CLEANUP CMD: ${NDK} -j${JOBS} ${CORE_ARGS} APP_ABI=${a} clean" 2>&1 | tee -a "$LOGFILE" echo "CLEANUP CMD: ${NDK} -j${JOBS} ${CORE_ARGS} clean" 2>&1 | tee -a "$LOGFILE"
${NDK} -j${JOBS} ${CORE_ARGS} APP_ABI=${a} clean 2>&1 | tee -a "$LOGFILE" ${NDK} -j${JOBS} ${CORE_ARGS} clean 2>&1 | tee -a "$LOGFILE"
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo buildbot job: $jobid $a ${core} cleanup success! echo buildbot job: $jobid $a ${core} cleanup success!
else else
echo buildbot job: $jobid $a ${core} cleanup failed! echo buildbot job: $jobid $a ${core} cleanup failed!
fi
fi fi
fi
echo -------------------------------------------------- | tee -a "$LOGFILE" echo -------------------------------------------------- | tee -a "$LOGFILE"
eval "set -- ${NDK} -j${JOBS} APP_ABI=${a} ${CORE_ARGS}" eval "set -- ${NDK} -j${JOBS} ${CORE_ARGS}"
echo "BUILD CMD: $@" 2>&1 | tee -a "$LOGFILE" echo "BUILD CMD: $@" 2>&1 | tee -a "$LOGFILE"
"$@" 2>&1 | tee -a "$LOGFILE" "$@" 2>&1 | tee -a "$LOGFILE"
echo "COPY CMD: cp -v ../libs/${a}/$LIBNAM.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAM}" 2>&1 | tee -a "$LOGFILE" RET=0
cp -v ../libs/${a}/$LIBNAM.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAM} 2>&1 | tee -a "$LOGFILE" for a in "${APPABIS[@]}"; do
cp -v ../libs/${a}/$LIBNAM.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAM} if [ -f ../libs/${a}/$LIBNAM.${FORMAT_EXT} ]; then
echo "COPY CMD: cp -v ../libs/${a}/$LIBNAM.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAM}" 2>&1 | tee -a "$LOGFILE"
cp -v ../libs/${a}/$LIBNAM.${FORMAT_EXT} $RARCH_DIST_DIR/${a}/${CORENAM} 2>&1 | tee -a "$LOGFILE"
RET=$? else
buildbot_handle_message "$RET" "$ENTRY_ID" "$core" "$jobid" "$LOGFILE" echo "$LIBNAM.${FORMAT_EXT} for ${a} not found" 2>&1 | tee -a "$LOGFILE"
RET=1
fi
done done
buildbot_handle_message "$RET" "$ENTRY_ID" "$core" "$jobid" "$LOGFILE"
done done
ENTRY_ID="" ENTRY_ID=""