#!/bin/bash set -e # source the common build functions SCRIPT_DIR=$(dirname "$0") source "${SCRIPT_DIR}/ios_build_functions.sh" function setup () { if [ "${ROOT_PATH}/External/libgit2-ios/libgit2-ios.a" -nt "${ROOT_PATH}/External/libgit2" ] then echo "No update needed." exit 0 fi LIBRARY_NAME="libgit2" LIB_PATH="${ROOT_PATH}/External/libgit2-ios" rm -rf "${LIB_PATH}" pushd "${ROOT_PATH}/External/libgit2" > /dev/null } function build_libgit2 () { rm -rf "build" mkdir "build" pushd "build" > /dev/null # LOL Cmake if [ "${ARCH}" != "i386" ] && [ "${ARCH}" != "x86_64" ] then SYS_ROOT="-DCMAKE_OSX_SYSROOT=${SDKROOT}" fi # install the each built arch somewhere sane INSTALL_PREFIX="${LIB_PATH}/${SDKNAME}-${ARCH}.sdk" mkdir -p "${INSTALL_PREFIX}" LOG="${INSTALL_PREFIX}/build-libgit2.log" echo "$LOG" cmake -DCMAKE_C_COMPILER=clang \ -DCMAKE_C_COMPILER_WORKS:BOOL=ON \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DOPENSSL_INCLUDE_DIR:PATH=../../External/ios-openssl/include/ \ -DCMAKE_LIBRARY_PATH:PATH=../../External/libssh2-ios/lib/ \ -DCMAKE_INCLUDE_PATH:PATH=../../External/libssh2-ios/include/libssh2/ \ -DOPENSSL_SSL_LIBRARY:FILEPATH=../../External/ios-openssl/lib/libssl.a \ -DCMAKE_LIBRARY_PATH:PATH="${SDKROOT}/usr/lib/" \ -DOPENSSL_CRYPTO_LIBRARY:FILEPATH=../../External/ios-openssl/lib/libcrypto.a \ -DCMAKE_INSTALL_PREFIX:PATH="${INSTALL_PREFIX}/" \ -DBUILD_CLAR:BOOL=OFF \ -DTHREADSAFE:BOOL=ON \ "${SYS_ROOT}" \ -DCMAKE_OSX_ARCHITECTURES:STRING="${ARCH}" \ .. >> "${LOG}" 2>&1 cmake --build . --target install >> "${LOG}" 2>&1 # push the built library into the list BUILT_LIB_PATHS+=("${INSTALL_PREFIX}/lib/libgit2.a") popd > /dev/null } function fat_binary () { echo "Building fat binary..." lipo -create "${BUILT_LIB_PATHS[@]}" -output "${ROOT_PATH}/External/libgit2-ios/libgit2-ios.a" echo "Building done." popd > /dev/null } build_all_archs setup build_libgit2 fat_binary