diff --git a/build-scripts/iosbuild.sh b/build-scripts/iosbuild.sh deleted file mode 100755 index 143de7dad..000000000 --- a/build-scripts/iosbuild.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/sh -# -# Build a fat binary for iOS - -# Number of CPUs (for make -j) -NCPU=`sysctl -n hw.ncpu` -if test x$NJOB = x; then - NJOB=$NCPU -fi - -SRC_DIR=$(cd `dirname $0`/..; pwd) -if [ "$PWD" = "$SRC_DIR" ]; then - PREFIX=$SRC_DIR/ios-build - if [ ! -d "$PREFIX" ]; then - mkdir $PREFIX - fi -else - PREFIX=$PWD -fi - -BUILD_I386_IOSSIM=YES -BUILD_X86_64_IOSSIM=YES - -BUILD_IOS_ARMV7=YES -BUILD_IOS_ARMV7S=YES -BUILD_IOS_ARM64=YES - -# 13.4.0 - Mavericks -# 14.0.0 - Yosemite -# 15.0.0 - El Capitan -DARWIN=darwin15.0.0 - -XCODEDIR=`xcode-select --print-path` -IOS_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-version` -MIN_SDK_VERSION=6.0 - -IPHONEOS_PLATFORM=`xcrun --sdk iphoneos --show-sdk-platform-path` -IPHONEOS_SYSROOT=`xcrun --sdk iphoneos --show-sdk-path` - -IPHONESIMULATOR_PLATFORM=`xcrun --sdk iphonesimulator --show-sdk-platform-path` -IPHONESIMULATOR_SYSROOT=`xcrun --sdk iphonesimulator --show-sdk-path` - -# Uncomment if you want to see more information about each invocation -# of clang as the builds proceed. -# CLANG_VERBOSE="--verbose" - -CC=clang -CXX=clang - -SILENCED_WARNINGS="-Wno-unused-local-typedef -Wno-unused-function" - -CFLAGS="${CLANG_VERBOSE} ${SILENCED_WARNINGS} -DNDEBUG -g -O0 -pipe -fPIC -fobjc-arc" - -echo "PREFIX ..................... ${PREFIX}" -echo "BUILD_MACOSX_X86_64 ........ ${BUILD_MACOSX_X86_64}" -echo "BUILD_I386_IOSSIM .......... ${BUILD_I386_IOSSIM}" -echo "BUILD_X86_64_IOSSIM ........ ${BUILD_X86_64_IOSSIM}" -echo "BUILD_IOS_ARMV7 ............ ${BUILD_IOS_ARMV7}" -echo "BUILD_IOS_ARMV7S ........... ${BUILD_IOS_ARMV7S}" -echo "BUILD_IOS_ARM64 ............ ${BUILD_IOS_ARM64}" -echo "DARWIN ..................... ${DARWIN}" -echo "XCODEDIR ................... ${XCODEDIR}" -echo "IOS_SDK_VERSION ............ ${IOS_SDK_VERSION}" -echo "MIN_SDK_VERSION ............ ${MIN_SDK_VERSION}" -echo "IPHONEOS_PLATFORM .......... ${IPHONEOS_PLATFORM}" -echo "IPHONEOS_SYSROOT ........... ${IPHONEOS_SYSROOT}" -echo "IPHONESIMULATOR_PLATFORM ... ${IPHONESIMULATOR_PLATFORM}" -echo "IPHONESIMULATOR_SYSROOT .... ${IPHONESIMULATOR_SYSROOT}" -echo "CC ......................... ${CC}" -echo "CFLAGS ..................... ${CFLAGS}" -echo "CXX ........................ ${CXX}" -echo "CXXFLAGS ................... ${CXXFLAGS}" -echo "LDFLAGS .................... ${LDFLAGS}" - -################################################################### -# This section contains the build commands for each of the -# architectures that will be included in the universal binaries. -################################################################### - -echo "$(tput setaf 2)" -echo "###########################" -echo "# i386 for iPhone Simulator" -echo "###########################" -echo "$(tput sgr0)" - -if [ "${BUILD_I386_IOSSIM}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=i386-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/i386-sim "CC=${CC}" "CFLAGS=${CFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j10 || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "#############################" -echo "# x86_64 for iPhone Simulator" -echo "#############################" -echo "$(tput sgr0)" - -if [ "${BUILD_X86_64_IOSSIM}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=x86_64-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/x86_64-sim "CC=${CC}" "CFLAGS=${CFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/ -L${IPHONESIMULATOR_SYSROOT}/usr/lib/system" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "##################" -echo "# armv7 for iPhone" -echo "##################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARMV7}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=armv7-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/armv7-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "###################" -echo "# armv7s for iPhone" -echo "###################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARMV7S}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=armv7s-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/armv7s-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7s -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "##################" -echo "# arm64 for iPhone" -echo "##################" -echo "$(tput sgr0)" - -if [ "${BUILD_IOS_ARM64}" == "YES" ] -then - ( - cd ${PREFIX} - make clean - ../configure --build=x86_64-apple-${DARWIN} --host=arm-ios-${DARWIN} --disable-shared --prefix=${PREFIX}/platform/arm64-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch arm64 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" || exit 2 - cp $SRC_DIR/include/SDL_config_iphoneos.h include/SDL_config.h - make -j$NJOB || exit 3 - make install - ) || exit $? -fi - -echo "$(tput setaf 2)" -echo "###################################################################" -echo "# Create Universal Libraries and Finalize the packaging" -echo "###################################################################" -echo "$(tput sgr0)" - -( - cd ${PREFIX}/platform - mkdir -p universal - lipo x86_64-sim/lib/libSDL2.a i386-sim/lib/libSDL2.a arm64-ios/lib/libSDL2.a armv7s-ios/lib/libSDL2.a armv7-ios/lib/libSDL2.a -create -output universal/libSDL2.a -) - -( - cd ${PREFIX} - mkdir -p lib - cp -r platform/universal/* lib - #rm -rf platform - lipo -info lib/libSDL2.a -) - -echo Done! diff --git a/docs/README-ios.md b/docs/README-ios.md index ee039de2f..242869b3c 100644 --- a/docs/README-ios.md +++ b/docs/README-ios.md @@ -23,21 +23,9 @@ There are three build targets: Build SDL for iOS from the command line ============================================================================== -1. cd (PATH WHERE THE SDL CODE IS)/build-scripts -2. ./iosbuild.sh +1. cd (PATH WHERE THE SDL CODE IS) +2. xcodebuild -project Xcode/SDL/SDL.xcodeproj -target 'Static Library-iOS' -configuration Release -sdk iphoneos13.2 clean build -If everything goes fine, you should see a build/ios directory, inside there's -two directories "lib" and "include". -"include" contains a copy of the SDL headers that you'll need for your project, -make sure to configure XCode to look for headers there. -"lib" contains find two files, libSDL2.a and libSDL2main.a, you have to add both -to your XCode project. These libraries contain three architectures in them, -armv6 for legacy devices, armv7, and i386 (for the simulator). -By default, iosbuild.sh will autodetect the SDK version you have installed using -xcodebuild -showsdks, and build for iOS >= 3.0, you can override this behaviour -by setting the MIN_OS_VERSION variable, ie: - -MIN_OS_VERSION=4.2 ./iosbuild.sh Using the Simple DirectMedia Layer for iOS ==============================================================================