mirror of
https://github.com/gosticks/SwiftGit2.git
synced 2025-10-16 11:55:34 +00:00
79 lines
2.1 KiB
Bash
Executable File
79 lines
2.1 KiB
Bash
Executable File
#!/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
|