[Catalyst] Catalyst + PAR + Module::Install::Catalyst
Carl Franks
fireartist at gmail.com
Tue Dec 6 11:46:58 CET 2005
See the PAR docs on available options.
As an example, below is a script I use to build an exe, rather than using `pp`.
You can of course ignore everything underneath the
# add Version no. to exe
Cheers,
Carl
#!C:\Perl\bin\perl.exe
use strict;
use warnings;
use PAR ();
use PAR::Packer ();
use Module::ScanDeps ();
use App::Packer::PAR ();
my %opt;
$opt{l} = [qw/
c:\\usr\\perl\\site\\lib\\auto\\Wx\\wxbase26u_gcc_custom.dll
c:\\usr\\perl\\site\\lib\\auto\\Wx\\wxmsw26u_adv_gcc_custom.dll
c:\\usr\\perl\\site\\lib\\auto\\Wx\\wxmsw26u_core_gcc_custom.dll
/];
$opt{M} = [qw/
File::Basename
Wx::DND
Wx::DocView
Wx::FS
Wx::Grid
Wx::Help
Wx::Html
Wx::MDI
Wx::Print
/];
$opt{I} = [qw/
lib
/];
$opt{g} = 1; # --gui
$opt{C} = 1; # --clean
$opt{i} = 'build/mondrian.ico'; # --icon
$opt{o} = "build/Set Permissions.exe";
my $pl2exe = 'build/set_permissions.pl';
App::Packer::PAR->new(
frontend => 'Module::ScanDeps',
backend => 'PAR::Packer',
frontopts => \%opt,
backopts => \%opt,
args => [$pl2exe],
)->go;
# add Version no. to exe
use Win32::Exe;
my $exe = Win32::Exe->new( $opt{o} );
my $rsrc = $exe->resource_section;
my $version = $rsrc->first_object('Version');
my $try;
eval {
push @INC, @{ $opt{I} };
require CAMS::SetPerms::topFrame;
if ($CAMS::SetPerms::topFrame::VERSION =~ /^(\d+)\.(\d)?(\d)?(\d)?$/) {
my @points = ($1, $2, $3, $4);
$_ ||= 0 for @points;
$try = join( ',', @points );
}
};
$try ||= '1,0,0,0';
$version->set( FileVersion => $try );
$version->set( CompanyName => 'x' );
$version->refresh;
$exe->write_file( $opt{o}, $exe->dump );
print "built .exe version $try\n";
More information about the Catalyst
mailing list