The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

=pod

=for license Artistic License 2.0 | Copyright (C) 2009 by Sanko Robinson

=for author Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

=for abstract Module::Build based install

=for git $Id: Build.PL c6346a6 2010-04-17 13:42:35Z sanko@cpan.org $

=cut

use strict;
use warnings;
use Module::Build;
use Config qw[%Config];
use File::Find qw[find];
my $automated_testing = $ENV{AUTOMATED_TESTING} || $ENV{PERL_MM_USE_DEFAULT};
my $is_developer = ($ENV{RELEASE_TESTING} || -d '.git');
my @tests;
find \&find_cb, qw[t/10000_basic t/20000_functions t/40000_widgets
    t/50000_objects t/60000_types], ($is_developer ? 't/90000_author' : ());
@tests = sort @tests;
my $class = 'inc::MBX::FLTK' . ($is_developer ? '::Developer' : '');

if (!eval "require $class") {
    printf 'Failed to load %s: %s This ain\'t good, so... bye!', $class, $@;
    exit 0;
}
my $mb = $class->new(
    module_name => 'FLTK',
    license     => 'artistic_2',
    dist_author => 'Sanko Robinson <sanko@cpan.org>',
    dist_abstract =>
        'Perl bindings to the 2.0.x branch of the Fast Light Toolkit',
    requires => {'Alien::FLTK2' => 0.06970022,
                 base           => 0,
                 Config         => 0,
                 Cwd            => 0,
                 ($is_developer ? ('Devel::PPPort' => 0) : ()),
                 'ExtUtils::CBuilder' => 0.27,
                 'ExtUtils::ParseXS'  => 0,
                 'File::Find'         => 0,
                 'File::Path'         => 2.07,
                 'File::Spec'         => 0,
                 'Module::Build'      => '0.36',
                 perl                 => 5.008000,
                 'Pod::Parser'        => 0,
                 'Test::More'         => 0.88
    },
    build_requires => {'Alien::FLTK2' => 0.06970017,
                       base           => 0,
                       Config         => 0,
                       Cwd            => 0,
                       ($is_developer ? ('Devel::PPPort' => 0) : ()),
                       'ExtUtils::CBuilder' => 0.27,
                       'ExtUtils::ParseXS'  => 0,
                       'File::Find'         => 0,
                       'File::Path'         => 2.07,
                       'File::Spec'         => 0,
                       'Module::Build'      => '0.36',
                       perl                 => 5.008000,
                       'Pod::Parser'        => 0,
                       'Test::More'         => 0.88
    },
    recommends     => {OpenGL => 0.58},
    add_to_cleanup => [qw[FLTK-*],
                       map {"*$_"} (
                             '.' . $Config{'so'}, $Config{'_o'}, $Config{'_a'}
                       )
    ],
    no_index => {directory => [qw[examples inc t]],
                 files     => [qw[xs/include/ppport.h]]
    },
    test_files => \@tests,
    meta_merge => {
        generated_by => 'Conversion, software version 7.0',
        keywords     => [
            qw[FLTK Fast Light Toolkit widget FL GUI UI window 2.0.x experimental]
        ],
        resources => {
             bugtracker => 'http://github.com/sanko/perl-fltk2/issues',
             ChangeLog => 'http://github.com/sanko/perl-fltk2/commits/master',
             homepage  => 'http://sanko.github.com/perl-fltk2/',
             license => 'http://www.perlfoundation.org/artistic_license_2_0',
             repository => 'http://github.com/sanko/perl-fltk2'
        }
    },
    needs_compiler => 1,    # adds ExtUtils::CBuilder to build_requires
    get_options => {'interactive!' => {},
                    'messy!'       => {}
    }
);
##############################################################################
$mb->notes(automated_testing => $automated_testing             ? 1 : 0);
$mb->notes(is_developer      => $is_developer                  ? 1 : 0);
$mb->notes(verbose           => $mb->args('messy')             ? 1 : 0);
$mb->notes(interactive       => $mb->args('interactive')       ? 1 : 0);
$mb->notes(threads           => $Config::Config{'useithreads'} ? 1 : 0);
$mb->notes(test_suite        => \@tests);
$mb->notes(gmtime            => scalar gmtime);
##############################################################################
$mb->create_build_script;
exit 0;
##############################################################################
sub find_cb {
    return if -d $_ or -l $_;
    return unless -T $_;
    return unless $_ =~ m[.+\.t$];
    return push @tests, $File::Find::name;
}