void-packages/srcpkgs/crystal/template
2017-12-22 18:45:17 +01:00

60 lines
2.7 KiB
Bash

# Template file for 'crystal'
pkgname=crystal
version=0.24.0
revision=1
hostmakedepends="crystal-bin git llvm"
makedepends="libxml2-devel"
depends="gc-devel libatomic_ops pcre-devel libevent-devel libyaml-devel
libxml2-devel gmp-devel libressl-devel llvm gcc"
checkdepends="readline-devel libyaml-devel gmp-devel libressl-devel"
short_desc="The Crystal Programming Language"
maintainer="lvmbdv <ata.kuyumcu@protonmail.com>"
license="Apache-2.0"
homepage="https://crystal-lang.org/"
distfiles="https://github.com/crystal-lang/crystal/archive/${version}.tar.gz"
checksum=c34f4326ee576f60b8960e331aae8d5265a12b30707582e1f5c6c6032d364a80
conflicts="crystal-bin"
nocross="FIXME: someone needs to sort out the llvm --cxxflags for cross building"
post_extract() {
# Check for libtls to determine if libssl is coming from LibreSSL, as suggested by Vaelatern
sed -i 's/OPENSSL_102 = .*/OPENSSL_102 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.0.2 libssl \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_ssl.cr
sed -i 's/OPENSSL_102 = .*/OPENSSL_102 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.0.2 libcrypto \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_crypto.cr
sed -i 's/OPENSSL_110 = .*/OPENSSL_110 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.1.0 libssl \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_ssl.cr
sed -i 's/OPENSSL_110 = .*/OPENSSL_110 = {{ `command -v pkg-config > \/dev\/null \&\& pkg-config --atleast-version=1.1.0 libcrypto \&\& pkg-config --exists libtls || printf succ`.stringify == "succ" }}/' ${wrksrc}/src/openssl/lib_crypto.cr
sed -i 's/exec crystal/exec crystal-bin/' ${wrksrc}/bin/crystal
}
do_build() {
make ${makejobs} release=1 FLAGS="--release --no-debug" \
CRYSTAL_CONFIG_PATH="lib:/usr/lib/crystal" \
CRYSTAL_CONFIG_VERSION="${version}" \
CRYSTAL_CACHE_DIR="/tmp/crystal"
make ${makejobs} doc CRYSTAL_CACHE_DIR="/tmp/crystal"
}
do_check() {
make ${makejobs} spec \
CRYSTAL_CONFIG_VERSION="${version}" \
CRYSTAL_CACHE_DIR="/tmp/crystal" \
PATH=".build:$PATH"
}
do_install() {
vmkdir /usr/bin
vmkdir /usr/lib/crystal
vmkdir /usr/share/doc/crystal
vmkdir /usr/share/doc/crystal/api
vmkdir /usr/share/bash-completion/completions/crystal
vmkdir /usr/share/zsh/site-functions/_crystal
vcopy etc/completion.bash /usr/share/bash-completion/completions/crystal
vcopy etc/completion.zsh /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
vlicense LICENSE
vman man/crystal.1
}