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 'Alien::Build::Plugin::Download::GitHub';
	requires 'Devel::FindPerl';
	requires 'Alien::Meson';
	requires 'Alien::Ninja';

	plugin 'Download::GitHub' => (
		github_user => 'ebassi',
		github_repo => 'graphene',
	);

	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';
};
