mirror of
https://github.com/xHyroM/void-packages.git
synced 2025-01-03 17:28:20 +01:00
84 lines
3.5 KiB
Bash
84 lines
3.5 KiB
Bash
# Template file for 'crystal'
|
|
pkgname=crystal
|
|
version=1.14.0
|
|
revision=1
|
|
archs="x86_64"
|
|
build_style=gnu-configure
|
|
_shardsversion=0.18.0
|
|
_molinilloversion=0.2.0
|
|
_bootstrapversion=1.14.0
|
|
_bootstraprevision=1
|
|
hostmakedepends="which tar git llvm17 pkg-config"
|
|
makedepends="gc-devel libatomic_ops pcre-devel libevent-devel libyaml-devel
|
|
libxml2-devel"
|
|
depends="gc-devel libatomic_ops pcre-devel libevent-devel libyaml-devel
|
|
libxml2-devel gmp-devel openssl-devel llvm17 gcc pkg-config"
|
|
checkdepends="readline-devel libyaml-devel gmp-devel openssl-devel"
|
|
short_desc="Crystal Programming Language"
|
|
maintainer="Jozef Steinhübl <xhyrom.hyro@gmail.com>"
|
|
license="Apache-2.0"
|
|
homepage="https://crystal-lang.org/"
|
|
distfiles="
|
|
https://github.com/crystal-lang/crystal/archive/${version}.tar.gz
|
|
https://github.com/crystal-lang/shards/archive/v${_shardsversion}.tar.gz
|
|
https://github.com/crystal-lang/crystal-molinillo/archive/v${_molinilloversion}.tar.gz
|
|
https://github.com/crystal-lang/crystal/releases/download/${_bootstrapversion}/crystal-${_bootstrapversion}-${_bootstraprevision}-linux-x86_64.tar.gz"
|
|
checksum="85c74d8654a0e111e2eaec6de38470bc9cb6762bc5b799dd3693d18cce4bc807
|
|
46a830afd929280735d765e59d8c27ac9ba92eddde9647ae7d3fc85addc38cc5
|
|
e231cf2411a6a11a1538983c7fb52b19e650acc3338bd3cdf6fdb13d6463861a
|
|
d39478dbdc978fa1883f4a70f0186ce5054cf3d984e9be99882bdf42a70fe2be"
|
|
nocross="FIXME: someone needs to sort out the llvm --cxxflags for cross building"
|
|
_crystalflags="--release --no-debug --progress"
|
|
|
|
do_extract() {
|
|
mkdir -p ${wrksrc}/{shards,shards/lib,shards/lib/molinillo,molinillo,$(vopt_if binary_bootstrap bootstrap)}
|
|
tar xfz ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${version}.tar.gz --strip-components=1 -C ${wrksrc}
|
|
tar xfz ${XBPS_SRCDISTDIR}/${pkgname}-${version}/v${_shardsversion}.tar.gz --strip-components=1 -C ${wrksrc}/shards
|
|
tar xfz ${XBPS_SRCDISTDIR}/${pkgname}-${version}/v${_molinilloversion}.tar.gz --strip-components=1 -C ${wrksrc}/molinillo
|
|
mv -f ${wrksrc}/molinillo/src/* ${wrksrc}/shards/lib/molinillo
|
|
if [ "$build_option_binary_bootstrap" ]; then
|
|
tar xf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/crystal-${_bootstrapversion}-${_bootstraprevision}-linux-${XBPS_TARGET_MACHINE}.tar.gz \
|
|
--strip-components=1 -C ${wrksrc}/bootstrap
|
|
fi
|
|
}
|
|
|
|
do_build() {
|
|
if [ -z ${disable_parallel_build} ] && [ ${XBPS_MAKEJOBS} ]; then
|
|
_crystalflags="${_crystalflags} --threads ${makejobs:2:4}"
|
|
fi
|
|
make ${makejobs} release=1 FLAGS="${_crystalflags}" \
|
|
CRYSTAL_CONFIG_PATH="lib:/usr/lib/crystal" \
|
|
CRYSTAL_CONFIG_VERSION="${version}" \
|
|
CRYSTAL_CACHE_DIR="/tmp/crystal" \
|
|
$(vopt_if binary_bootstrap PATH="${wrksrc}/bootstrap/bin:$PATH")
|
|
make ${makejobs} docs CRYSTAL_CACHE_DIR="/tmp/crystal"
|
|
cd shards
|
|
${wrksrc}/bin/crystal build ${_crystalflags} -o bin/shards src/shards.cr
|
|
}
|
|
|
|
do_check() {
|
|
make ${makejobs} spec \
|
|
CRYSTAL_CONFIG_VERSION="${version}" \
|
|
CRYSTAL_CACHE_DIR="/tmp/crystal" \
|
|
PATH=".build:$PATH"
|
|
cd shards
|
|
make test CRYSTAL_BIN="${wrksrc}/bin/crystal"
|
|
}
|
|
|
|
do_install() {
|
|
vmkdir /usr/bin
|
|
vmkdir /usr/lib/crystal
|
|
vmkdir /usr/share/doc/crystal
|
|
vmkdir /usr/share/doc/crystal/api
|
|
vmkdir /usr/share/licenses/shards
|
|
vinstall etc/completion.bash 644 \
|
|
usr/share/bash-completion/completions crystal
|
|
vinstall etc/completion.zsh 644 usr/share/zsh/site-functions _crystal
|
|
vcopy samples /usr/share/doc/crystal
|
|
vcopy docs/* /usr/share/doc/crystal/api
|
|
vcopy src/* /usr/lib/crystal
|
|
vbin .build/crystal crystal
|
|
vman man/crystal.1
|
|
vbin shards/bin/shards
|
|
cp shards/LICENSE ${DESTDIR}/usr/share/licenses/shards
|
|
}
|