Files
location_plotter/run.sh
T
onur 049f6301e8
Ubuntu build / build-and-test (ubuntu-22.04) (push) Has been cancelled
Ubuntu build / build-and-test (ubuntu-24.04) (push) Has been cancelled
Add macOS USB UART support
2026-07-18 12:03:38 +03:00

68 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
print_qt_install_hint() {
echo
if [[ "$(uname -s)" == "Darwin" ]]; then
echo "Qt6 bulunamadi. macOS'ta gerekli paketleri kurmak icin:"
echo " brew install cmake qt"
echo "veya doğrudan: ./setup-macos.sh"
else
echo "Qt6 bulunamadi. Ubuntu'da gerekli paketleri kurmak icin:"
echo " sudo apt update"
echo " sudo apt install build-essential cmake qt6-base-dev"
fi
}
project_dir="$(pwd -P)"
if [[ -f ./build/CMakeCache.txt ]]; then
cached_source="$(sed -n 's/^CMAKE_HOME_DIRECTORY:INTERNAL=//p' ./build/CMakeCache.txt)"
cached_system="$(sed -n 's/^CMAKE_SYSTEM_NAME:INTERNAL=//p' ./build/CMakeCache.txt)"
host_system="$(uname -s)"
if [[ ( -n "$cached_source" && "$cached_source" != "$project_dir" ) \
|| ( -n "$cached_system" && "$cached_system" != "$host_system" ) ]]; then
echo "Build klasoru farkli bir proje yolu veya sisteme ait, yeniden olusturuluyor."
rm -rf ./build
fi
fi
cmake_args=(-S . -B build)
if [[ "$(uname -s)" == "Darwin" ]] && command -v brew >/dev/null 2>&1; then
cmake_args+=("-DCMAKE_PREFIX_PATH=$(brew --prefix qt)")
fi
if ! cmake "${cmake_args[@]}"; then
print_qt_install_hint
exit 1
fi
cmake --build build
if [[ "$(uname -s)" == "Darwin" ]]; then
exec ./build/location_plotter.app/Contents/MacOS/location_plotter "$@"
fi
missing_libs="$(ldd ./build/location_plotter 2>/dev/null | awk '/not found/ { print $1 }' || true)"
if [[ -n "$missing_libs" ]]; then
echo "Eksik paylasimli kutuphaneler:"
echo "$missing_libs" | sed 's/^/ /'
print_qt_install_hint
exit 1
fi
if id -nG | tr ' ' '\n' | grep -qx dialout; then
exec ./build/location_plotter "$@"
fi
if getent group dialout | tr ':' '\n' | tail -n 1 | tr ',' '\n' | grep -qx "$(id -un)"; then
exec sg dialout -c "$(printf '%q ' ./build/location_plotter "$@")"
fi
echo "Bu kullanici dialout grubunda degil. Eklemek icin:"
echo " sudo usermod -a -G dialout $(id -un)"
echo "Sonra oturumu kapatip ac veya bu scripti tekrar calistir."
exit 1