#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 24;
use FindBin;
use lib "$FindBin::Bin/lib";
use TestHelper;
use ExtUtils::Depends;
my $tmp_inc = temp_inc;
my $dep_info = ExtUtils::Depends->new ('DepTest');
my $inc = '-Iinclude -I/usr/local/include -W -Wall -Werror -ansi';
$dep_info->set_inc ($inc);
my $libs = '-L/usr/local/lib -lfoobar';
$dep_info->set_libs ($libs);
my %pm_mapping = ('DepTest.pm' => 'build/DepTest.pm',
'DepTest/Helper.pm' => 'build/DepTest/Helper.pm');
$dep_info->add_pm (%pm_mapping);
my @xs_files = qw(DepTestFoo.xs
DepTestBar.xs);
$dep_info->add_xs (@xs_files);
my @c_files = qw(dep-test-foo.c
dep-test-bar.c);
$dep_info->add_c (@c_files);
my @typemaps = qw(build/foo.typemap
build/bar.typemap);
$dep_info->add_typemaps (@typemaps);
my @installed_files = qw(dep.h
dep-private.h);
$dep_info->install (@installed_files);
$dep_info->save_config (catfile $tmp_inc, qw(DepTest Install Files.pm));
# --------------------------------------------------------------------------- #
my %vars = $dep_info->get_makefile_vars;
is_deeply ($vars{TYPEMAPS}, \@typemaps);
is ($vars{INC}, $inc);
is ($vars{LIBS}, $libs);
foreach my $pm (keys %pm_mapping) {
like ($vars{PM}{$pm}, qr/\Q$pm_mapping{$pm}\E/);
}
ok (exists $vars{PM}{catfile $tmp_inc, qw(DepTest Install Files.pm)});
foreach my $file (@installed_files) {
like ($vars{PM}{$file}, qr/\Q$file\E/);
}
foreach my $xs_file (@xs_files) {
ok (exists $vars{XS}{$xs_file});
}
foreach my $file (@c_files, @xs_files) {
(my $stem = $file) =~ s/\.(?:c|xs)\z//;
like ($vars{OBJECT}, qr/\Q$stem\E/);
like ($vars{clean}{FILES}, qr/\Q$stem\E/);
}
# --------------------------------------------------------------------------- #
my $info = ExtUtils::Depends::load ('DepTest');
my $install_part = qr|DepTest.Install|;
like ($info->{inc}, $install_part);
ok (-1 != index $info->{inc}, $inc);
isa_ok ($info->{typemaps}, 'ARRAY');
like ($info->{instpath}, $install_part);
is_deeply ($info->{deps}, []);
is ($info->{libs}, $libs);
# --------------------------------------------------------------------------- #