diff --git a/mingw-w64-crystal/PKGBUILD b/mingw-w64-crystal/PKGBUILD new file mode 100644 index 0000000000000..18aaec8f0c911 --- /dev/null +++ b/mingw-w64-crystal/PKGBUILD @@ -0,0 +1,75 @@ +# Maintainer: Quinton Miller + +_realname=crystal +pkgbase="mingw-w64-${_realname}" +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +_major=1 +_minor=15 +_patch=0 +_version="${_major}.${_minor}.${_patch}" +_tag=${_version} +pkgver=${_version} +pkgrel=1 +pkgdesc="Fast and statically typed, compiled language with Ruby-like syntax (mingw-w64)" +arch=('any') +mingw_arch=('ucrt64' 'mingw64' 'clang64') +url="https://crystal-lang.org/" +msys2_repository_url="https://github.com/crystal-lang/crystal" +msys2_documentation_url="https://crystal-lang.org/reference/${_major}.${_minor}/" +msys2_changelog_url="https://github.com/crystal-lang/crystal/releases/tag/${_tag}" +msys2_references=( + "archlinux: crystal" +) +license=('spdx:Apache-2.0 WITH Swift-exception') +depends=( + "${MINGW_PACKAGE_PREFIX}-cc" + "${MINGW_PACKAGE_PREFIX}-gc" + "${MINGW_PACKAGE_PREFIX}-pcre2" + "${MINGW_PACKAGE_PREFIX}-gmp" + "${MINGW_PACKAGE_PREFIX}-libffi" + "${MINGW_PACKAGE_PREFIX}-libiconv" + "${MINGW_PACKAGE_PREFIX}-libxml2" + "${MINGW_PACKAGE_PREFIX}-libyaml" + "${MINGW_PACKAGE_PREFIX}-llvm" + "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-zlib" +) +makedepends=( + "git" +) +checkdepends=( + "${MINGW_PACKAGE_PREFIX}-lld" # needed for linking std_spec +) +source=( + "$pkgname-$pkgver::git+${msys2_repository_url}.git#tag=${_version}" + https://github.com/crystal-lang/crystal/releases/download/1.15.0/crystal-1.15.0-windows-x86_64-gnu-unsupported.zip # stage 0 compiler +) +sha256sums=( + '6be663c5f0c9410696ed3fb5bd6006cafc2ab0bd0813651b62ca65982360f512' + '7d7df1b4a99cb3f938106ba45e0b55ce1d9913491999f1acaa57da168a18becb' +) + +prepare() { + cd "$pkgname-$pkgver" + if test true != "$(git config core.symlinks)" + then + git config core.symlinks true && + MSYS='winsymlinks:nativestrict' git restore --source=HEAD :/ + fi +} + +build() { + cd "$pkgname-$pkgver" + CRYSTAL="$srcdir/bin/crystal.exe" make interpreter=1 release=1 +} + +check() { + cd "$pkgname-$pkgver" + # the full suite is run on the crystal-lang/crystal repo's own CI + CRYSTAL_SPEC_COMPILER_BIN="$(pwd)/.build/crystal.exe" make std_spec +} + +package() { + cd "$pkgname-$pkgver" + make install DESTDIR="$pkgdir" PREFIX="${MINGW_PREFIX}" deref_symlinks=1 +}