shadow-over-bishkek001/proj-ios/fetch_dependencies.sh
2026-08-02 21:45:49 +03:00

100 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
THIRDPARTY_DIR="$PROJECT_ROOT/thirdparty"
mkdir -p "$THIRDPARTY_DIR"
echo "=========================================="
echo "Fetching Dependencies into: $THIRDPARTY_DIR"
echo "=========================================="
download_and_extract() {
local name="$1"
local url="$2"
local archive_name="$3"
local target_dir_name="$4"
local archive_path="$THIRDPARTY_DIR/$archive_name"
local target_path="$THIRDPARTY_DIR/$target_dir_name"
if [ -d "$target_path" ]; then
echo "[$name] Already extracted in $target_path. Skipping."
return 0
fi
if [ ! -f "$archive_path" ]; then
echo "[$name] Downloading $archive_name to $THIRDPARTY_DIR ..."
curl -L "$url" -o "$archive_path"
else
echo "[$name] Archive $archive_name already exists in $THIRDPARTY_DIR."
fi
echo "[$name] Extracting $archive_name ..."
if [[ "$archive_name" == *.tar.gz ]] || [[ "$archive_name" == *.tgz ]]; then
if ! tar -xzf "$archive_path" -C "$THIRDPARTY_DIR"; then
echo "[$name] Extraction failed! Removing corrupt archive $archive_path."
rm -f "$archive_path"
exit 1
fi
elif [[ "$archive_name" == *.tar.bz2 ]]; then
if ! tar -xjf "$archive_path" -C "$THIRDPARTY_DIR"; then
echo "[$name] Extraction failed! Removing corrupt archive $archive_path."
rm -f "$archive_path"
exit 1
fi
elif [[ "$archive_name" == *.zip ]]; then
if ! unzip -q "$archive_path" -d "$THIRDPARTY_DIR"; then
echo "[$name] Extraction failed! Removing corrupt archive $archive_path."
rm -f "$archive_path"
exit 1
fi
fi
echo "[$name] Unpacked successfully."
}
# 1. zlib
download_and_extract \
"zlib" \
"https://github.com/madler/zlib/archive/refs/tags/v1.3.1.tar.gz" \
"zlib-1.3.1.tar.gz" \
"zlib-1.3.1"
# 2. bzip2
download_and_extract \
"bzip2" \
"https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" \
"bzip2-1.0.8.tar.gz" \
"bzip2-1.0.8"
# 3. libpng
download_and_extract \
"libpng" \
"https://downloads.sourceforge.net/project/libpng/libpng16/1.6.43/libpng-1.6.43.tar.gz" \
"libpng-1.6.43.tar.gz" \
"libpng-1.6.43"
# 4. libzip
download_and_extract \
"libzip" \
"https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.gz" \
"libzip-1.10.1.tar.gz" \
"libzip-1.10.1"
# 5. Boost
download_and_extract \
"Boost" \
"https://archives.boost.io/release/1.84.0/source/boost_1_84_0.tar.gz" \
"boost_1_84_0.tar.gz" \
"boost_1_84_0"
echo "=========================================="
echo "All dependencies downloaded and unpacked!"
echo "=========================================="