The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
#############################################################################
## Name:        script/fix_alien_path.pl
## Purpose:     Substitute Alien::wxWidgets path in modules
## Author:      Mattia Barbon
## Modified by:
## Created:     15/08/2005
## RCS-ID:      $Id: fix_alien_path.pl 2057 2007-06-18 23:03:00Z mbarbon $
## Copyright:   (c) 2005-2006 Mattia Barbon
## Licence:     This program is free software; you can redistribute it and/or
##              modify it under the same terms as Perl itself
#############################################################################

use strict;
use blib; # to pick the correct 'Wx::build::Options'
use Alien::wxWidgets 0.04 ();
use Wx::build::Options;
use Fatal qw(open close unlink);
use Config;
use Data::Dumper;
use File::Spec::Functions qw(splitpath splitdir);

# we do not care about the options, just that Alien::wxWidgets
# is initialized with the correct key
Wx::build::Options->get_makemaker_options( 'saved' );
$Alien::wxWidgets::dont_remap = 1;

my( $from, $to ) = @ARGV;
my $key = Alien::wxWidgets->key;
my $version = Alien::wxWidgets->version;
my @libs = Alien::wxWidgets->library_keys;
my %libs; @libs{@libs} = Alien::wxWidgets->shared_libraries( @libs );
my $libs = Data::Dumper::Dumper( \%libs );

my $keyd;
if( $^O =~ /mswin/i ) {
    $keyd = $key;
} else {
    my( $vol, $dir, $file ) = splitpath( Alien::wxWidgets->prefix );
    $keyd = $file ? $file : ( splitdir( $dir ) )[-1];
}

unlink $to if -f $to;
open my $in, "< $from"; binmode $in;
open my $out, "> $to"; binmode $out;

while( <$in> ) {
    s/XXXALIENDXXX/$keyd/g;
    s/XXXALIENXXX/$key/g;
    s/Wx::wxVERSION\(\)/$version/g;
    s/XXXDLLSXXX/$libs/g;
    print $out $_;
}

close $in;
close $out;

exit 0;