TGViewer
ТохЫч. Не только Linux ТохЫч. Не только Linux @toxblh_linux · 2.6K subscribers
Post #1570 1.55K
Этот скрипт ZSH для Alt даст вам собирать meson проекты играючи.

Проблема: каждый раз качая проект с meson, у меня всегда есть эта боль, что нужно или через сборку или глазами вычитать и собрать зависимости и после их установить.

Решение: Автоматический перехват meson build/setup. Парсим meson конфиг, находим dependencies, собираем строку на установку. Для ускорения второй и след - пишем epm.lock файл.

meson() {
if [[ "$1" == "build" || "$1" == "setup" ]]; then
local MESON_BUILD="meson.build"
local LOCK_FILE="epm.lock"

if [[ -f "$MESON_BUILD" ]]; then
local DEPS=$(grep -oP "dependency\('\K[^']+" "$MESON_BUILD" | sort)
local DEPS_HASH=$(echo "$DEPS" | md5sum | cut -d' ' -f1)

local need_install=true
if [[ -f "$LOCK_FILE" ]]; then
local LOCK_HASH=$(grep "^hash:" "$LOCK_FILE" | cut -d' ' -f2)
[[ "$DEPS_HASH" == "$LOCK_HASH" ]] && need_install=false
fi

if $need_install; then
echo "→ installing deps..."
epmi $(echo "$DEPS" | sed "s/.*/pkgconfig(&)/")
{
echo "hash: $DEPS_HASH"
echo "date: $(date -Iseconds)"
echo "deps:"
echo "$DEPS" | sed "s/^/ - /"
} > "$LOCK_FILE"
echo "✓ lock updated"
else
echo "✓ deps unchanged, skipping"
fi
fi
fi

command meson "$@"
}


Если у вас zsh, то закинуть в любое место в ~/.zshrc

И оно же но просто одной командой:
epmi $(grep -oP "dependency\('\K[^']+" meson.build | sed "s/.*/pkgconfig(&)/")

Суть, что у rpm пакетников, пакеты можно ставить по pkgconfig названию (то как их в meson прописывают), так что epmi можно заменить на dnf install и тоже будет работать. Arch/Ubuntu сорян, страдайте))

Если я изобрёл велосипед, киньтесь решением тогда в комментарии, но чёт пока не находил

@toxblh_linux
  • 👍 15
  • ❤ 1
More from @toxblh_linux
  1. Sep 28, 2026Новая неделя - новый подпивас! Первый экспериментальный выпуск в прямом эфире. Обсуждаем в…
  2. Sep 28, 2026video post
  3. Sep 27, 2026У нас тут подпивас впервые в Live https://t.me/belaruskij_podpivas в телеграмме. :)
  4. Sep 27, 2026https://www.reddit.com/r/foss/s/bZKd2te85V ну наконец то удобно будет 😂
  5. Sep 26, 2026‎Написал IPTV-плеер, потому что во время отпуска с ноутбуком обнаружил отсутствие удоб…
  6. Sep 26, 2026на самом деле на картинке куда больше интересного чем только кассета )))) • FreeBSD 16 (хо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →