#!/bin/bash

# Dependency Check Script for GTK2 MPV Player

PRINT_OK() { echo -e "\e[32m[OK]\e[0m $1"; }
PRINT_ERROR() { echo -e "\e[31m[ERROR]\e[0m $1"; }
PRINT_WARNING() { echo -e "\e[33m[WARNING]\e[0m $1"; }

FAILED=0

echo "Checking build dependencies..."

# Check for pkg-config
if command -v pkg-config >/dev/null 2>&1; then
    PRINT_OK "pkg-config found"
else
    PRINT_ERROR "pkg-config not found. Please install it."
    FAILED=1
fi

# Check for GTK+ 2.0
if pkg-config --exists gtk+-2.0; then
    PRINT_OK "GTK+ 2.0 development files found"
else
    PRINT_ERROR "GTK+ 2.0 development files not found (libgtk2.0-dev or equivalent)."
    FAILED=1
fi

# Check for libmpv (runtime)
# Try to find ldconfig in common paths if not in PATH
LDCONFIG_BIN=$(command -v ldconfig || command -v /sbin/ldconfig || command -v /usr/sbin/ldconfig)
if [ -n "$LDCONFIG_BIN" ]; then
    MPV_PATH=$($LDCONFIG_BIN -p | grep libmpv.so.2 | head -n 1 | awk '{print $NF}')
    if [ -n "$MPV_PATH" ]; then
        PRINT_OK "libmpv.so.2 found at: $MPV_PATH"
    else
        PRINT_WARNING "libmpv.so.2 not found in system paths. You will need to provide it in the 'lib' directory manually if bundling fails."
    fi
else
    PRINT_WARNING "ldconfig not found. Unable to check for libmpv.so.2 automatically."
fi

# Check for compiler
if command -v gcc >/dev/null 2>&1; then
    PRINT_OK "gcc found"
else
    PRINT_ERROR "gcc not found. Please install a C compiler."
    FAILED=1
fi

# Check for make
if command -v make >/dev/null 2>&1; then
    PRINT_OK "make found"
else
    PRINT_ERROR "make not found. Please install make."
    FAILED=1
fi

if [ $FAILED -eq 0 ]; then
    echo "--------------------------------------"
    PRINT_OK "All required build dependencies are present."
    exit 0
else
    echo "--------------------------------------"
    PRINT_ERROR "Some dependencies are missing. Please install them and try again."
    exit 1
fi
