#!/bin/sh
set -e

ROOTDIR=$(cd $(dirname $0) && pwd -P)
EXTLIBRARIES="libevent libevent_pthreads libevent_openssl libcrypto libssl libGeoIP"

list_libs() {
    input_lib=$1
    libs=""
    for arch in i386 x86_64; do
        if [ -f tmp/iphonesimulator/$arch/lib/$input_lib.a ]; then
            libs="$libs tmp/iphonesimulator/$arch/lib/$input_lib.a"
        fi
    done
    for arch in arm64 armv7s armv7; do
        if [ -f tmp/iphoneos/$arch/lib/$input_lib.a ]; then
            libs="$libs tmp/iphoneos/$arch/lib/$input_lib.a"
        fi
    done
    echo $libs
}

(
    cd "$ROOTDIR"

    # Clean old frameworks (if any)
    rm -rf Frameworks/*

    # Create framework folders
    for lib in $EXTLIBRARIES measurement_kit; do
        mkdir Frameworks/$lib.framework
    done

    # Copying first headers we find. This has no implications because
    # measurement-kit uses no machine-dependent headers.
    for platform in iphoneos iphonesimulator; do
        for arch in i386 x86_64 armv7 armv7s arm64; do
            if [ -d tmp/$platform/$arch/include/measurement_kit ]; then
                cp -Rp tmp/$platform/$arch/include/measurement_kit \
                    Frameworks/measurement_kit.framework/Headers
                break
            fi
        done
    done

    # Lipo external libraries
    for lib in $EXTLIBRARIES; do
        lipo -create -output Frameworks/$lib.framework/$lib `list_libs $lib`
    done

    # Lipo measurement-kit library
    lipo -create -output Frameworks/measurement_kit.framework/measurement_kit  \
            `list_libs libmeasurement_kit`

    # Create fake header to make CocoaPod happy
    for lib in $EXTLIBRARIES; do
        install -d Frameworks/$lib.framework/Headers
        echo "/* Make CocoaPod happy */" > \
            Frameworks/$lib.framework/Headers/dummy_header.h
    done
)
