2
0
MasterPassword/platform-darwin/Scripts/build_libjson-c-ios
2017-08-12 21:57:47 -04:00

72 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
cd "${BASH_SOURCE%/*}/../External/libjson-c"
[[ -d libjson-c-ios ]] && exit
# Prepare
autoreconf -Iautoconf-archive/m4 --verbose --install --symlink --force 2>&1 | sed 's/^\([^:]*\):[0-9]\{1,\}: /\1: /'
rm -rf "${prefix=$PWD/libjson-c-ios}"
mkdir -p "$prefix/lib" \
"${prefix_x86_64=$prefix/tmp/x86_64}" \
"${prefix_armv7=$prefix/tmp/armv7}" \
"${prefix_armv7s=$prefix/tmp/armv7s}" \
"${prefix_arm64=$prefix/tmp/arm64}"
# SDK: iOS Simulator
sdkPath="$(xcrun --show-sdk-path --sdk iphonesimulator)"
platformPath="$(xcrun --show-sdk-platform-path --sdk iphonesimulator)"
(
## ARCH: x86_64
export PATH="$platformPath/usr/bin:$platformPath/usr/sbin:$PATH"
export CFLAGS="-arch x86_64 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -O2 -g -flto $CFLAGS"
export LDFLAGS="-arch x86_64 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -flto $LDFLAGS"
[[ -e Makefile ]] && make -s clean
./configure --host=x86_64-apple-darwin10 --disable-shared --prefix="$prefix_x86_64"
make -j3 install
)
# SDK: iOS Device
sdkPath="$(xcrun --show-sdk-path --sdk iphoneos)"
platformPath="$(xcrun --show-sdk-platform-path --sdk iphoneos)"
(
## ARCH: armv7
export PATH="$platformPath/usr/bin:$platformPath/usr/sbin:$PATH"
export CFLAGS="-mthumb -arch armv7 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -O2 -g -flto $CFLAGS"
export LDFLAGS="-mthumb -arch armv7 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -flto $LDFLAGS"
[[ -e Makefile ]] && make -s clean
./configure --host=arm-apple-darwin10 --disable-shared --prefix="$prefix_armv7"
make -j3 install
)
(
## ARCH: armv7s
export PATH="$platformPath/usr/bin:$platformPath/usr/sbin:$PATH"
export CFLAGS="-mthumb -arch armv7s -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -O2 -g -flto $CFLAGS"
export LDFLAGS="-mthumb -arch armv7s -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -flto $LDFLAGS"
[[ -e Makefile ]] && make -s clean
./configure --host=arm-apple-darwin10 --disable-shared --prefix="$prefix_armv7s"
make -j3 install
)
(
## ARCH: arm64
export PATH="$platformPath/usr/bin:$platformPath/usr/sbin:$PATH"
export CFLAGS="-mthumb -arch arm64 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -O2 -g -flto $CFLAGS"
export LDFLAGS="-mthumb -arch arm64 -isysroot $sdkPath -mios-simulator-version-min=${IPHONEOS_DEPLOYMENT_TARGET:-8.0} -flto $LDFLAGS"
[[ -e Makefile ]] && make -s clean
./configure --host=arm-apple-darwin10 --disable-shared --prefix="$prefix_arm64"
make -j3 install
)
# Merge Binaries
lipo -create \
"$prefix_x86_64/lib/libjson-c.a" \
"$prefix_armv7/lib/libjson-c.a" \
"$prefix_armv7s/lib/libjson-c.a" \
"$prefix_arm64/lib/libjson-c.a" \
-output "$prefix/lib/libjson-c.a"
mv -f -- "$prefix_arm64/include" "$prefix/"
# Cleanup
rm -rf -- "$prefix/tmp"
make -s clean