2025-09-24 15:46:52 +03:00

75 lines
2.9 KiB
Bash

# Maintainer: Maksim Bondarenkov <maksapple2306@gmail.com>
_realname=turbo
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.5.8
pkgrel=1
pkgdesc="Incremental bundler and build system optimized for JavaScript and TypeScript (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://turbo.build'
msys2_repository_url='https://github.com/vercel/turborepo'
license=('spdx:MPL-2.0')
depends=("${MINGW_PACKAGE_PREFIX}-libgit2"
"${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-zstd")
makedepends=("${MINGW_PACKAGE_PREFIX}-rust"
"${MINGW_PACKAGE_PREFIX}-capnproto"
"${MINGW_PACKAGE_PREFIX}-protobuf"
"${MINGW_PACKAGE_PREFIX}-pkgconf"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-fontconfig"
"${MINGW_PACKAGE_PREFIX}-freetype"
'git')
options=('!strip')
source=("git+${msys2_repository_url}.git#tag=v${pkgver}"
"zstd-sys.tar.gz::https://crates.io/api/v1/crates/zstd-sys/2.0.10+zstd.1.5.6/download"
"zstd-sys-remove-statik.patch"
"turbo-support-rust-1.90.patch")
sha256sums=('98dedd7a1e6d99ce92346a74ec425ba375a6a08837553f3d2202deaab9ca4003'
'c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa'
'48f4900ceb02d3aaf9a1020f33d56629156e96759f456c0e7ca18bfcf910767b'
'77f253b42353c299afa13bfbcd7d9a3a0832bc27533cd74a1d6ee98af40d62e7')
prepare() {
cd turborepo
patch -Np1 -i ../turbo-support-rust-1.90.patch
patch -d ../zstd-sys-2.0.10+zstd.1.5.6 -i ../zstd-sys-remove-statik.patch
cat >> Cargo.toml <<END
[patch.crates-io]
zstd-sys = { path = "../zstd-sys-2.0.10+zstd.1.5.6" }
END
rm rust-toolchain.toml
cargo update -p zstd-sys --config='net.git-fetch-with-cli=true'
RUSTC_BOOTSTRAP=1 cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd turborepo
export RUSTC_BOOTSTRAP=1
export OPENSSL_NO_VENDOR=1
export LIBGIT2_NO_VENDOR=1
export PKG_CONFIG_ALL_DYNAMIC=1
export ZSTD_SYS_USE_PKG_CONFIG=1
# this disables telemetry only at runtime, the relevant code is compiled anyway
export TURBO_TELEMETRY_DISABLED=1
export RUSTFLAGS="${RUSTFLAGS/+crt-static/-crt-static}"
cargo build --frozen --profile release-turborepo -p turbo
}
package() {
install -Dm755 turborepo/target/release-turborepo/turbo "${pkgdir}${MINGW_PREFIX}/bin/turbo"
local _complete='turborepo/target/release-turborepo/turbo completion'
$_complete bash | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions/${_realname}"
$_complete fish | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/fish/vendor_completions.d/${_realname}.fish"
$_complete zsh | install -Dm644 /dev/stdin "${pkgdir}${MINGW_PREFIX}/share/zsh/site-functions/_${_realname}"
install -Dm644 turborepo/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}