# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
setvar pkgname = 'ruby-ffi'
setvar _gemname = 'ffi'
setvar pkgver = '1.9.18'
setvar pkgrel = '0'
setvar pkgdesc = ""Ruby FFI library""
setvar url = ""https://github.com/ffi/ffi""
setvar arch = ""all""
setvar license = ""BSD""
setvar makedepends = ""libffi-dev ruby ruby-dev""
setvar install = ""$pkgname.post-install""
setvar source = ""$pkgname-$pkgver.tar.gz::https://github.com/ffi/$_gemname/archive/$pkgver.tar.gz""
setvar builddir = ""$srcdir/$_gemname-$pkgver""
setvar options = ""!check""  # does not work with PaX (it'd need paxmark -m /usr/bin/ruby)

proc build {
	cd $builddir

	gem build $_gemname.gemspec
	gem install --local \
		--install-dir dist \
		--ignore-dependencies \
		--no-document \
		--verbose \
		$_gemname-$pkgver.gem
}

proc check {
	cd $builddir

	# Install missing development dependencies needed and used only for running
	# tests. We can't install them easily with bundler, because there's
	# no way how to force it to NOT update already satisifed dependencies.
	# We can't install them directly with gem either, because there's no
	# way how to force it to instally only dependencies, not the gem itself.
	local dev_deps=$(gem install --explain --development --minimal-deps $_gemname-$pkgver.gem \
		| head -n -1 | sed -En 's/-([^-]+)$/:\1/p')
	gem install --instal-dir=.gem --conservative $dev_deps'

	GEM_PATH='dist:.gem'' .gem/bin/rspec
}

proc package {
	local gemdir="$pkgdir/$(ruby -rubygems -e 'puts Gem.default_dir')"

	local carch
	case (CARCH) {
		x86 { setvar carch = ""i386""}
		arm* { setvar carch = ""arm""}
		ppc64le { setvar carch = ""powerpc64""}
		* { setvar carch = "$CARCH"}
	}

	cd "$builddir"/dist

	mkdir -p $gemdir
	cp -r extensions gems specifications "$gemdir"/

	# Remove unnecessary files and rubbish...
	find "$gemdir"/extensions/ -name mkmf.log -delete

	cd "$gemdir"/gems/$_gemname-$pkgver
	rm -r ext/ gen/ libtest/ spec/ lib/*.so Rakefile *.md || true
	find lib/ffi/platform/* -prune ! -name "$carch-linux" -exec rm -rf {} +
}

setvar sha512sums = ""49c52e5e42e436b7969c35a34b28bd7929d75372638ac5373486a1d624026c12dc682009bc101e4a2c8f1442ed6f1ba17b438cda2e02d4256622b489c4bd9945  ruby-ffi-1.9.18.tar.gz""