mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 22:28:22 +01:00
Add ios build script for building iOS library.
This build script (iosbuild.sh) will build for following platforms: iPhoneSimulator, iPhoneOS-V7 & iPhoneOS-V7s Change-Id: Icbb69e00277a4164f848b8766089302e299506e0
This commit is contained in:
parent
aeb91a9d49
commit
79fe39e2f2
92
iosbuild.sh
Executable file
92
iosbuild.sh
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/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} \
|
||||||
|
--disable-shared --enable-static \
|
||||||
|
--enable-libwebpdecoder --enable-swap-16bit-csp
|
||||||
|
|
||||||
|
# run make only in the src/ directory to create libwebpdecoder.a
|
||||||
|
cd src/
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
|
LIBLIST+=" ${ROOTDIR}/lib/libwebpdecoder.a"
|
||||||
|
|
||||||
|
make clean
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
export PATH=${OLDPATH}
|
||||||
|
done
|
||||||
|
|
||||||
|
cp -a src/webp/* ${TARGETDIR}/Headers/
|
||||||
|
${LIPO} -create ${LIBLIST} -output ${TARGETDIR}/WebP
|
Loading…
Reference in New Issue
Block a user