use alienfile;

use Env qw(@LIBRARY_PATH @PATH);
use Cwd;
use File::Spec;

plugin 'PkgConfig' => 'graphene-gobject-1.0';

# http://ebassi.github.io/graphene/
share {
	requires 'Alien::Build::Plugin::Gather::Dino';
	requires 'Devel::FindPerl';
	requires 'Alien::Meson';
	requires 'Alien::Ninja';

	plugin Download => (
		url => 'https://github.com/ebassi/graphene/releases',
		version => qr/([\d\.]+)\.tar\.gz/,
	);

	plugin Extract => 'tar.gz';

	my $prop = meta_prop;

	my $build_dir = '_build';
	build [
		[ '%{meson}',
			'--prefix=%{.install.prefix}',
			'--libdir=lib',
			'--buildtype=release',
			'-Dintrospection=enabled',
			'-Dgobject_types=true',
			$build_dir ],
		sub {
			if( $^O eq 'MSWin32' ) {
				my $src_dir = File::Spec->catfile( getcwd(), $build_dir, qw(src) );
				push @LIBRARY_PATH, $src_dir;
				push @PATH, $src_dir;
			}
		},
		[ '%{ninja}', qw(-C), $build_dir, "test" ],
		[ '%{ninja}', qw(-C), $build_dir, 'install' ],
	];

	plugin 'Gather::Dino';
};
