# 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 " 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 }