From 44ce1675fc14e67cd0fc58484d1f0c0bbd036e3b Mon Sep 17 00:00:00 2001 From: "T. Joseph Carter" Date: Tue, 17 Feb 2015 11:46:21 -0800 Subject: [PATCH] Diff reduction for libretro-build-ios.sh --- libretro-build-ios.sh | 165 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 135 insertions(+), 30 deletions(-) diff --git a/libretro-build-ios.sh b/libretro-build-ios.sh index 812a1f56..de886c73 100755 --- a/libretro-build-ios.sh +++ b/libretro-build-ios.sh @@ -1,39 +1,128 @@ #! /usr/bin/env bash # vim: set ts=3 sw=3 noet ft=sh : bash -set -e - -WORKDIR="${PWD}" -BASE_DIR="$PWD" -RARCH_DIR=$BASE_DIR/dist -RARCH_DIST_DIR=$RARCH_DIR/ios -FORMAT=_ios FORMAT_COMPILER_TARGET=ios -FORMAT_COMPILER_TARGET_ALT=ios -FORMAT_EXT=dylib -JOBS=7 -MAKE=make -CXX11="clang++ -std=c++11 -stdlib=libc++ -miphoneos-version-min=5.0" -IOS=1 -IOSSDK=$(xcrun -sdk iphoneos -show-sdk-path) -IOSVER_MAJOR=$(xcrun -sdk iphoneos -show-sdk-platform-version | cut -c '1') -IOSVER_MINOR=$(xcrun -sdk iphoneos -show-sdk-platform-version | cut -c '3') -IOSVER=${IOSVER_MAJOR}${IOSVER_MINOR} -echo "iOS path: ${IOSSDK}" -echo "iOS version: ${IOSVER}" -export IOSSDK +SCRIPT="${0#./}" +BASE_DIR="${SCRIPT%/*}" +WORKDIR=$PWD -. ./libretro-build-common.sh +if [ "$BASE_DIR" = "$SCRIPT" ]; then + BASE_DIR="$WORKDIR" +else + if [[ "$0" != /* ]]; then + # Make the path absolute + BASE_DIR="$WORKDIR/$BASE_DIR" + fi +fi -if [ $1 ]; then - $1 +if [ "$FORMAT_COMPILER_TARGET" != "ios" ]; then + . ${BASE_DIR}/libretro-config.sh +else + # FIXME: libretro-config.sh should eventually do this stuff for iOS + DIST_DIR="ios" + FORMAT_EXT=dylib + IOS=1 + FORMAT=_ios + FORMAT_COMPILER_TARGET=ios + export IOSSDK=$(xcrun -sdk iphoneos -show-sdk-path) + IOSVER_MAJOR=$(xcrun -sdk iphoneos -show-sdk-platform-version | cut -c '1') + IOSVER_MINOR=$(xcrun -sdk iphoneos -show-sdk-platform-version | cut -c '3') + IOSVER=${IOSVER_MAJOR}${IOSVER_MINOR} +fi + +if [ -z "$RARCH_DIST_DIR" ]; then + RARCH_DIR="$WORKDIR/dist" + RARCH_DIST_DIR="$RARCH_DIR/$DIST_DIR" +fi + +if [ -z "$JOBS" ]; then + JOBS=7 +fi + +if [ "$HOST_CC" ]; then + CC="${HOST_CC}-gcc" + CXX="${HOST_CC}-g++" + CXX11="${HOST_CC}-g++" + STRIP="${HOST_CC}-strip" +fi + +if [ -z "$MAKE" ]; then + if uname -s | grep -i MINGW32 > /dev/null 2>&1; then + MAKE=mingw32-make + else + if type gmake > /dev/null 2>&1; then + MAKE=gmake + else + MAKE=make + fi + fi +fi + +if [ -z "$CC" ]; then + if [ "$FORMAT_COMPILER_TARGET" = "ios" ]; then + CC="clang -arch armv7 -miphoneos-version-min=5.0 -isysroot $IOSSDK" + elif [ $FORMAT_COMPILER_TARGET = "osx" ]; then + CC=cc + elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then + CC=mingw32-gcc + else + CC=gcc + fi +fi + +if [ -z "$CXX" ]; then + if [ "$FORMAT_COMPILER_TARGET" = "ios" ]; then + CXX="clang++ -arch armv7 -miphoneos-version-min=5.0 -isysroot $IOSSDK" + CXX11="clang++ -std=c++11 -stdlib=libc++ -arch armv7 -miphoneos-version-min=5.0 -isysroot $IOSSDK" + elif [ $FORMAT_COMPILER_TARGET = "osx" ]; then + CXX=c++ + CXX11="clang++ -std=c++11 -stdlib=libc++" + # FIXME: Do this right later. + if [ "$ARCH" = "i386" ]; then + CC="cc -arch i386" + CXX="c++ -arch i386" + CXX11="clang++ -arch i386 -std=c++11 -stdlib=libc++" + fi + elif uname -s | grep -i MINGW32 > /dev/null 2>&1; then + CXX=mingw32-g++ + CXX11=mingw32-g++ + else + CXX=g++ + CXX11=g++ + fi +fi + +FORMAT_COMPILER_TARGET_ALT=$FORMAT_COMPILER_TARGET + + +if [ "$FORMAT_COMPILER_TARGET" = "ios" ]; then + echo "iOS path: ${IOSSDK}" + echo "iOS version: ${IOSVER}" +fi +echo "CC = $CC" +echo "CXX = $CXX" +echo "CXX11 = $CXX11" +echo "STRIP = $STRIP" + + +. $BASE_DIR/libretro-build-common.sh + +mkdir -p "$RARCH_DIST_DIR" + +if [ -n "$1" ]; then + while [ -n "$1" ]; do + "$1" + shift + done else build_libretro_2048 + build_libretro_4do build_libretro_bluemsx build_libretro_fmsx build_libretro_bsnes_cplusplus98 build_libretro_bsnes + build_libretro_bsnes_mercury build_libretro_beetle_lynx build_libretro_beetle_gba build_libretro_beetle_ngp @@ -43,7 +132,7 @@ else build_libretro_beetle_vb build_libretro_beetle_wswan build_libretro_mednafen_psx - #build_libretro_beetle_bsnes + build_libretro_beetle_snes build_libretro_catsfc build_libretro_snes9x build_libretro_snes9x_next @@ -67,19 +156,35 @@ else build_libretro_picodrive build_libretro_handy build_libretro_desmume - build_libretro_pcsx_rearmed - build_libretro_pcsx_rearmed_interpreter - build_libretro_mupen64 + if [ $FORMAT_COMPILER_TARGET != "win" ]; then + build_libretro_pcsx_rearmed + fi + if [ $FORMAT_COMPILER_TARGET = "ios" ]; then + # For self-signed iOS (without jailbreak) + build_libretro_pcsx_rearmed_interpreter + fi build_libretro_yabause - #build_libretro_ffmpeg - build_libretro_3dengine build_libretro_vecx build_libretro_tgbdual build_libretro_prosystem build_libretro_dinothawr build_libretro_virtualjaguar + build_libretro_mupen64 + build_libretro_3dengine + if [ $FORMAT_COMPILER_TARGET != "ios" ]; then + # These don't currently build on iOS + build_libretro_bnes + build_libretro_ffmpeg + build_libretro_ppsspp + fi build_libretro_o2em - build_libretro_4do + build_libretro_hatari build_libretro_gpsp build_libretro_emux + build_libretro_test + if [ $FORMAT_COMPILER_TARGET != "ios" ]; then + build_libretro_testgl + fi + build_summary fi +