-l libglib-2.0-0.dll -l libgobject-2.0-0.dll -l libgthread-2.0-0.dll -l libcairo-2.dll -l libfontconfig-1.dll -l libexpat-1.dll -l freetype6.dll -l libpng12-0.dll -l zlib1.dll -l libpango-1.0-0.dll -l libgmodule-2.0-0.dll -l libpangocairo-1.0-0.dll -l libpangoft2-1.0-0.dll -l libpangowin32-1.0-0.dll -l libatk-1.0-0.dll -l libgdk-win32-2.0-0.dll -l libgdk_pixbuf-2.0-0.dll -l libgio-2.0-0.dll -l libgtk-win32-2.0-0.dll -l intl.dll
####
$ pmvers PAR PAR::Packer
PAR: 0.994
PAR::Packer: 1.000
##
##
#!/perl/bin/perl -w
use strict;
use FindBin;
use pp;
use Module::ScanDeps;
# This subroutine relies on not being called for modules that have already been visited
sub Module::ScanDeps::add_deps {
package Module::ScanDeps;
my %args =
((@_ and $_[0] =~ /^(?:modules|rv|used_by|warn_missing)$/)
? @_
: (rv => (ref($_[0]) ? shift(@_) : undef), modules => [@_]));
my $rv = $args{rv} || {};
my $skip = $args{skip} || {};
my $used_by = $args{used_by};
foreach my $module (@{ $args{modules} }) {
my $file = _find_in_inc($module)
or _warn_of_missing_module($module, $args{warn_missing}), next;
next if $skip->{$file};
if (exists $rv->{$module}) {
_add_info( rv => $rv, module => $module,
file => $file, used_by => $used_by,
type => undef );
next;
}
my $type = _gettype($file);
_add_info( rv => $rv, module => $module,
file => $file, used_by => $used_by,
type => $type );
if ($module =~ /(.*?([^\/]*))\.p[mh]$/i) {
my ($path, $basename) = ($1, $2);
foreach (_glob_in_inc("auto/$path")) {
next if $_->{file} =~ m{(Glib)|(Cairo)|(Gtk2)|(GladeXML)} and $^O eq 'MSWin32';
next if $_->{file} =~ m{\bauto/$path/.*/}; # weed out subdirs
next if $_->{name} =~ m/(?:^|\/)\.(?:exists|packlist)$/;
my ($ext,$type);
$ext = lc($1) if $_->{name} =~ /(\.[^.]+)$/;
if (defined $ext) {
next if $ext eq lc(lib_ext());
$type = 'shared' if $ext eq lc(dl_ext());
$type = 'autoload' if ($ext eq '.ix' or $ext eq '.al');
}
$type ||= 'data';
_add_info( rv => $rv, module => "auto/$path/$_->{name}",
file => $_->{file}, used_by => $module,
type => $type );
}
}
} # end for modules
return $rv;
}
my $version = '1.0.0';
my $script = "$FindBin::Bin/test.pl";
my @libs = qw(
Cairo/Cairo.dll
Pango/Pango.dll
Glib/Glib.dll
Gtk2/Gtk2.dll
Gtk2/GladeXML/GladeXML.dll
);
@ARGV = ();
push (@ARGV, '-z');
push (@ARGV, '9');
#~ push (@ARGV, '--gui');
push (@ARGV, '-N');
push (@ARGV, "ProductVersion=$version");
push (@ARGV, '-N');
push (@ARGV, "FileVersion=$version");
push @ARGV, qw! -l libglib-2.0-0.dll -l libgobject-2.0-0.dll -l libgthread-2.0-0.dll -l libcairo-2.dll -l libfontconfig-1.dll -l libexpat-1.dll -l freetype6.dll -l libpng12-0.dll -l zlib1.dll -l libpango-1.0-0.dll -l libgmodule-2.0-0.dll -l libpangocairo-1.0-0.dll -l libpangoft2-1.0-0.dll -l libpangowin32-1.0-0.dll -l libatk-1.0-0.dll -l libgdk-win32-2.0-0.dll -l libgdk_pixbuf-2.0-0.dll -l libgio-2.0-0.dll -l libgtk-win32-2.0-0.dll -l intl.dll !;
for my $file (@libs) {
for my $dir (@INC) {
my $lib = "$dir/auto/$file";
if (-f $lib) {
push (@ARGV, '-l');
push (@ARGV, $lib);
last;
}
}
}
push (@ARGV, '-o');
push (@ARGV, "$FindBin::Bin/test.exe");
push (@ARGV, "$script");
pp->go();
##
##
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed at C:/perl/5.10.1/lib/MSWin32-x86-multi-thread/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed at C:/perl/5.10.1/lib/MSWin32-x86-multi-thread/DynaLoader.pm line 223.
cannot register alias Gtk2::Pango::Attribute for the unregistered type (null) at C:/perl/5.10.1/lib/MSWin32-x86-multi-thread/DynaLoader.pm line 223.
Compilation failed in require at script/test.pl line 11.
BEGIN failed--compilation aborted at script/test.pl line 11.