mirror of
https://github.com/libretro/libretro-super
synced 2025-02-26 00:40:29 +00:00
Clean up cmake path and add android cmake function
The android cmake function allows multiple ABIs to be built from a single recipe, cutting down on redundancy.
This commit is contained in:
parent
1be009ad09
commit
3a249e8be0
@ -373,22 +373,19 @@ build_libretro_generic_makefile() {
|
||||
|
||||
echo '--------------------------------------------------' | tee -a "$LOGFILE"
|
||||
if [ "${COMMAND}" = "CMAKE" ]; then
|
||||
if [ "${PLATFORM}" = "android" ]; then
|
||||
EXTRAARGS="-DANDROID_PLATFORM=android-${API_LEVEL} \
|
||||
-DANDROID_ABI=${ABI_OVERRIDE} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${NDK_ROOT}/build/cmake/android.toolchain.cmake"
|
||||
else
|
||||
case "${platform}" in
|
||||
msvc2017_desktop_x86 ) EXTRAARGS="-G\"Visual Studio 15 2017\"" ;;
|
||||
msvc2017_desktop_x64 ) EXTRAARGS="-G\"Visual Studio 15 2017 Win64\"" ;;
|
||||
msvc2010_x86 ) EXTRAARGS="-G\"Visual Studio 10 2010\"" ;;
|
||||
msvc2010_x64 ) EXTRAARGS="-G\"Visual Studio 10 2010 Win64\"" ;;
|
||||
msvc2005_x86 ) EXTRAARGS="-G\"Visual Studio 8 2005\"" ;;
|
||||
msvc2005_x64 ) EXTRAARGS="-G\"Visual Studio 8 2005 Win64\"" ;;
|
||||
msvc2003_x86 ) EXTRAARGS="-G\"Visual Studio 7\"" ;;
|
||||
* ) EXTRAARGS="" ;;
|
||||
esac
|
||||
fi
|
||||
case "${platform}" in
|
||||
msvc2017_desktop_x86 ) EXTRAARGS="-G\"Visual Studio 15 2017\"" ;;
|
||||
msvc2017_desktop_x64 ) EXTRAARGS="-G\"Visual Studio 15 2017 Win64\"" ;;
|
||||
msvc2010_x86 ) EXTRAARGS="-G\"Visual Studio 10 2010\"" ;;
|
||||
msvc2010_x64 ) EXTRAARGS="-G\"Visual Studio 10 2010 Win64\"" ;;
|
||||
msvc2005_x86 ) EXTRAARGS="-G\"Visual Studio 8 2005\"" ;;
|
||||
msvc2005_x64 ) EXTRAARGS="-G\"Visual Studio 8 2005 Win64\"" ;;
|
||||
msvc2003_x86 ) EXTRAARGS="-G\"Visual Studio 7\"" ;;
|
||||
android ) EXTRAARGS="-DANDROID_PLATFORM=android-${API_LEVEL} \
|
||||
-DANDROID_ABI=${ABI_OVERRIDE} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${NDK_ROOT}/build/cmake/android.toolchain.cmake" ;;
|
||||
* ) EXTRAARGS="" ;;
|
||||
esac
|
||||
|
||||
JOBS_FLAG=-j
|
||||
if [ "${MAKEFILE}" = "sln" ]; then
|
||||
@ -443,6 +440,71 @@ build_libretro_generic_makefile() {
|
||||
ENTRY_ID=""
|
||||
}
|
||||
|
||||
build_libretro_android_cmake() {
|
||||
NAME="$1"
|
||||
DIR="$2"
|
||||
SUBDIR="$3"
|
||||
MAKEFILE="$4"
|
||||
PLATFORM="$5"
|
||||
ARGS="$6"
|
||||
|
||||
JOBS_FLAG=-j
|
||||
EXTRAARGS="-DANDROID_PLATFORM=android-${API_LEVEL} -DCMAKE_TOOLCHAIN_FILE=${NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_STL=c++_static"
|
||||
|
||||
if [ -n "NDK_CCACHE" ]; then
|
||||
EXTRAARGS="$EXTRAARGS -DCMAKE_C_COMPILER_LAUNCHER=${NDK_CCACHE} -DCMAKE_CXX_COMPILER_LAUNCHER=${NDK_CCACHE}"
|
||||
fi
|
||||
|
||||
ENTRY_ID=""
|
||||
if [ -n "$LOGURL" ]; then
|
||||
ENTRY_ID=`curl -X POST -d type="start" -d master_log="$MASTER_LOG_ID" -d platform="$jobid" -d name="$NAME" http://buildbot.fiveforty.net/build_entry/`
|
||||
fi
|
||||
|
||||
cd ${DIR}
|
||||
mkdir -p ${SUBDIR}
|
||||
cd ${SUBDIR}
|
||||
|
||||
CORENAM="${NAME}_libretro${FORMAT}${LIBSUFFIX}.${FORMAT_EXT}"
|
||||
|
||||
LOGFILE="$TMPDIR/log/${BOT}/${LOGDATE}/${LOGDATE}_${NAME}_${PLATFORM}.log"
|
||||
echo '--------------------------------------------------' | tee "$LOGFILE"
|
||||
cat $TMPDIR/vars | tee -a "$LOGFILE"
|
||||
|
||||
echo '--------------------------------------------------' | tee -a "$LOGFILE"
|
||||
RET=0
|
||||
for ABI in ${TARGET_ABIS}; do
|
||||
rm -rf ${ABI}
|
||||
mkdir ${ABI}
|
||||
pushd ${ABI}
|
||||
|
||||
eval "set -- ${EXTRAARGS} \${ARGS} -DCMAKE_VERBOSE_MAKEFILE=OFF -DANDROID_ABI=${ABI}"
|
||||
echo "BUILD CMD: ${CMAKE} $*" 2>&1 | tee -a "$LOGFILE"
|
||||
echo "$@" ../.. | xargs ${CMAKE} 2>&1 | tee -a "$LOGFILE"
|
||||
|
||||
echo "BUILD CMD: ${CMAKE} --build . --target ${NAME}_libretro --config Release -- ${JOBS_FLAG}${JOBS}" 2>&1 | tee -a "$LOGFILE"
|
||||
${CMAKE} --build . --target ${NAME}_libretro --config Release -- ${JOBS_FLAG}${JOBS} 2>&1 | tee -a "$LOGFILE"
|
||||
|
||||
COREPATH=$(find . -type f -name ${CORENAM})
|
||||
if [ -n "${COREPATH}" ]; then
|
||||
echo "COPY CMD: cp ${COREPATH} $RARCH_DIST_DIR/${ABI}/${CORENAM}" 2>&1 | tee -a "$LOGFILE"
|
||||
cp ${COREPATH} $RARCH_DIST_DIR/${ABI}/${CORENAM} 2>&1 | tee -a "$LOGFILE"
|
||||
|
||||
if [ ! -z "${STRIPPATH+x}" ]; then
|
||||
${NDK_ROOT}/${STRIPPATH} -s $RARCH_DIST_DIR/${ABI}/${CORENAM}
|
||||
fi
|
||||
else
|
||||
echo "${CORENAM} for ${ABI} not found" 2>&1 | tee -a "$LOGFILE"
|
||||
RET=1
|
||||
fi
|
||||
|
||||
popd
|
||||
done
|
||||
|
||||
buildbot_handle_message "$RET" "$ENTRY_ID" "$NAME" "$jobid" "$LOGFILE"
|
||||
|
||||
ENTRY_ID=""
|
||||
}
|
||||
|
||||
build_libretro_generic_jni() {
|
||||
NAME="$1"
|
||||
DIR="$2"
|
||||
@ -667,6 +729,7 @@ while read line; do
|
||||
CORES_BUILT=YES
|
||||
echo "buildbot job: building $NAME"
|
||||
case "${COMMAND}" in
|
||||
ANDROID_CMAKE ) build_libretro_android_cmake $NAME $DIR $SUBDIR $MAKEFILE ${FORMAT_COMPILER_TARGET} "${ARGS}" ;;
|
||||
CMAKE|GENERIC|GENERIC_GL )
|
||||
build_libretro_generic_makefile $NAME $DIR $SUBDIR $MAKEFILE ${FORMAT_COMPILER_TARGET} "${ARGS}" "${CORES}" ;;
|
||||
GENERIC_JNI ) build_libretro_generic_jni $NAME $DIR $SUBDIR $MAKEFILE ${FORMAT_COMPILER_TARGET_ALT} "${ARGS}" "${CORES}" ;;
|
||||
|
Loading…
x
Reference in New Issue
Block a user