94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# This script generates 'WebP.framework'. An iOS app can decode WebP images
 | 
						|
# by including 'WebP.framework'.
 | 
						|
#
 | 
						|
# Run ./iosbuild.sh to generate 'WebP.framework' under the current directory
 | 
						|
# (previous build will be erased if it exists).
 | 
						|
#
 | 
						|
# This script is inspired by the build script written by Carson McDonald.
 | 
						|
# (http://www.ioncannon.net/programming/1483/using-webp-to-reduce-native-ios-app-size/).
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
# Extract the latest SDK version from the final field of the form: iphoneosX.Y
 | 
						|
declare -r SDK=$(xcodebuild -showsdks \
 | 
						|
  | grep iphoneos | sort | tail -n 1 | awk '{print substr($NF, 9)}'
 | 
						|
)
 | 
						|
declare -r OLDPATH=${PATH}
 | 
						|
 | 
						|
# Add iPhoneOS-V6 to the list of platforms below if you need armv6 support.
 | 
						|
# Note that iPhoneOS-V6 support is not available with the iOS6 SDK.
 | 
						|
declare -r PLATFORMS="iPhoneSimulator iPhoneOS-V7 iPhoneOS-V7s"
 | 
						|
declare -r SRCDIR=$(dirname $0)
 | 
						|
declare -r TOPDIR=$(pwd)
 | 
						|
declare -r BUILDDIR="${TOPDIR}/iosbuild"
 | 
						|
declare -r TARGETDIR="${TOPDIR}/WebP.framework"
 | 
						|
declare -r DEVELOPER=$(xcode-select --print-path)
 | 
						|
declare -r PLATFORMSROOT="${DEVELOPER}/Platforms"
 | 
						|
declare -r LIPO=$(xcrun -sdk iphoneos${SDK} -find lipo)
 | 
						|
LIBLIST=''
 | 
						|
 | 
						|
if [[ -z "${SDK}" ]]; then
 | 
						|
  echo "iOS SDK not available"
 | 
						|
  exit 1
 | 
						|
elif [[ ${SDK} < 4.0 ]]; then
 | 
						|
  echo "You need iOS SDK version 4.0 or above"
 | 
						|
  exit 1
 | 
						|
else
 | 
						|
  echo "iOS SDK Version ${SDK}"
 | 
						|
fi
 | 
						|
 | 
						|
rm -rf ${BUILDDIR}
 | 
						|
rm -rf ${TARGETDIR}
 | 
						|
mkdir -p ${BUILDDIR}
 | 
						|
mkdir -p ${TARGETDIR}/Headers/
 | 
						|
 | 
						|
[[ -e ${SRCDIR}/configure ]] || (cd ${SRCDIR} && sh autogen.sh)
 | 
						|
 | 
						|
for PLATFORM in ${PLATFORMS}; do
 | 
						|
  if [[ "${PLATFORM}" == "iPhoneOS-V7s" ]]; then
 | 
						|
    PLATFORM="iPhoneOS"
 | 
						|
    ARCH="armv7s"
 | 
						|
  elif [[ "${PLATFORM}" == "iPhoneOS-V7" ]]; then
 | 
						|
    PLATFORM="iPhoneOS"
 | 
						|
    ARCH="armv7"
 | 
						|
  elif [[ "${PLATFORM}" == "iPhoneOS-V6" ]]; then
 | 
						|
    PLATFORM="iPhoneOS"
 | 
						|
    ARCH="armv6"
 | 
						|
  else
 | 
						|
    ARCH="i386"
 | 
						|
  fi
 | 
						|
 | 
						|
  ROOTDIR="${BUILDDIR}/${PLATFORM}-${SDK}-${ARCH}"
 | 
						|
  mkdir -p "${ROOTDIR}"
 | 
						|
 | 
						|
  export DEVROOT="${PLATFORMSROOT}/${PLATFORM}.platform/Developer"
 | 
						|
  export SDKROOT="${DEVROOT}/SDKs/${PLATFORM}${SDK}.sdk"
 | 
						|
 | 
						|
  export CFLAGS="-arch ${ARCH} -pipe -isysroot ${SDKROOT}"
 | 
						|
  export CXXFLAGS=${CFLAGS}
 | 
						|
  export LDFLAGS="-arch ${ARCH} -pipe -isysroot ${SDKROOT}"
 | 
						|
  export PATH="${DEVROOT}/usr/bin:${OLDPATH}"
 | 
						|
 | 
						|
  ${SRCDIR}/configure --host=${ARCH}-apple-darwin --prefix=${ROOTDIR} \
 | 
						|
    --build=$(${SRCDIR}/config.guess) \
 | 
						|
    --disable-shared --enable-static \
 | 
						|
    --enable-libwebpdecoder --enable-swap-16bit-csp
 | 
						|
 | 
						|
  # run make only in the src/ directory to create libwebpdecoder.a
 | 
						|
  cd src/
 | 
						|
  make V=0
 | 
						|
  make install
 | 
						|
 | 
						|
  LIBLIST+=" ${ROOTDIR}/lib/libwebpdecoder.a"
 | 
						|
 | 
						|
  make clean
 | 
						|
  cd ..
 | 
						|
 | 
						|
  export PATH=${OLDPATH}
 | 
						|
done
 | 
						|
 | 
						|
cp -a ${SRCDIR}/src/webp/* ${TARGETDIR}/Headers/
 | 
						|
${LIPO} -create ${LIBLIST} -output ${TARGETDIR}/WebP
 |