The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use inc::Module::Install;
name 'Web-Scraper';
all_from 'lib/Web/Scraper.pm';

requires 'Scalar::Util';
requires 'HTML::TreeBuilder::XPath', 0.08;
requires 'HTML::TreeBuilder', 3.23;
requires 'XML::XPathEngine', 0.08;
requires 'HTML::Selector::XPath', 0.03;
requires 'LWP', 5.827;
requires 'HTML::Entities';
requires 'HTML::Tagset';
requires 'UNIVERSAL::require';
requires 'URI';
requires 'YAML';

feature 'LibXML', -default => 1, 'HTML::TreeBuilder::LibXML', 0.04;

build_requires 'Test::More';
build_requires 'Test::Base';
test_requires 'Test::Requires';
install_script 'bin/scraper';

unlink glob "t/libxml-*.t";
if (eval q{ use HTML::TreeBuilder::LibXML 0.04; 1 }) {
    setup_libxml_tests();
}

auto_set_repository;
author_tests "xt";
WriteAll;

sub setup_libxml_tests {
    warn "You have HTML::TreeBuilder::LibXML. Writing tests for it.\n";
    my %skip_tests = map { ("t/$_" => 1) } qw( 12_html.t );
    my @tests = grep !$skip_tests{$_}, glob "t/*.t";
    for my $test (@tests) {
        (my $new = $test) =~ s!^t/(\d+)!t/libxml-$1! or next;
        open my $in, "<", $test;
        open my $out, ">", $new;

        while (<$in>) {
            s/^use Web::Scraper/use Web::Scraper::LibXML/;
            print $out $_;
        }
    }
}