The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use lib 'inc';
use MyBuilder;
use Config;
use File::Spec::Functions qw.catdir catfile.;
use File::Copy;

my $version = get_version();


my $builder = MyBuilder->new
  (
   module_name    => 'Text::BibTeX',
   license        => 'perl',
   dist_author    => ['Alberto Simões <ambs@cpan.org>',
                      'Greg Ward <gward@python.net>'],
   needs_compiler => 1,
   configure_requires => {
                          'Module::Build' => '0.36' ,
                          'Config::AutoConf'     => '0.16',
                          'ExtUtils::LibBuilder' => '0.02',
   },
   build_requires => {
                      'File::Copy'           => '0',
                      'Config::AutoConf'     => '0.16',
                      'ExtUtils::LibBuilder' => '0.02',
                      'Capture::Tiny'        => '0.06',
                      'ExtUtils::CBuilder'   => '0.27',
                      'Module::Build'        => '0.3603',
                     },
   add_to_cleanup => [
                      'Text-BibTeX-*',
# NOT SURE YET        'btparse/src/bt_config.h',
                      'btparse/src/*.so',
                      'btparse/src/*.dylib',
                      'btparse/src/*.dll',
                      'btparse/src/*.o',
                      'xscode/*.o',
                      'btparse/tests/*.o',
                      'btparse/progs/*.o',
                      'btparse/progs/dumpnames',
                      'btparse/progs/bibparse',
                      'btparse/progs/biblex',
                      'btparse/tests/postprocess_test',
                      'btparse/tests/read_test',
                      'btparse/tests/simple_test',
                      'btparse/tests/macro_test',
                      'btparse/tests/case_test',
                      'btparse/tests/name_test',
                      'btparse/tests/purify_test',
                     ],
  );

## HACK  HACK  HACK  HACK
my $libdir = $builder->install_destination("bin");
if ($^O =~ /mswin32/i) {
    $libdir = undef;
    # Find a place where we can write.
    my @folders = split /;/, $ENV{PATH};
    my $installed = 0;
    my $target = "text-bibtex.$$";
    while(@folders && !$installed) {
        $libdir = shift @folders;	

        copy("MANIFEST", catfile($libdir,$target));
        $installed = 1 if -f catfile($libdir, $target);
    }
    if (!$installed) {
        warn("Wasn't able to find a suitable place for libbtparse.dll!");
    } else {
        print STDERR "libbtparse.dll will be installed in $libdir\n";
        unlink catfile($libdir, $target);
    }
} else {
    if ($Config{archname} =~ /^x86_64/) {
        $libdir =~ s/\bbin\b/lib64/;
        if (!-d $libdir) {
            my $test = $libdir;
            $test =~ s/lib64/lib/;
            $libdir = $test if -d $test;
        }
    } else {
        $libdir =~ s/\bbin\b/lib/;
    }
}
$builder->notes('btparse_version' => $version);
$builder->notes('lib_path' => $libdir);
$builder->add_build_element('usrlib');
$builder->install_path( 'usrlib' => $libdir );

$builder->create_build_script;

sub get_version {
    my $version = undef;
    open PM, "lib/Text/BibTeX.pm" or die "Cannot open 'lib/Text/BibTeX.pm' for reading: $!\n";
    while (<PM>) {
        if (m!^our\s+\$VERSION\s*=\s*'([^']+)'!) {
            $version = $1;
            last;
        }
    }
    close PM;
    die "Could not find VERSION on your .pm file. Weirdo!\n" unless $version;
}