1 package Imager::ExtUtils;
10 Imager::ExtUtils - functions handy in writing Imager extensions
14 # make Imager easier to use with Inline
15 # perldoc Imager::Inline
16 use Inline with => 'Imager';
24 Returns the base directory where Imager is installed.
28 # figure out where Imager is installed
31 if (-e "$dir/Imager.pm") {
36 die "Cannot locate an installed Imager!";
41 Implements Imager's Inline::C C<with> hook.
47 my $base = base_dir();
51 INC => $class->includes,
52 TYPEMAPS => $class->typemap,
53 AUTO_INCLUDE => <<CODE,
54 /* Inserted by Imager $Imager::VERSION */
57 DEFINE_IMAGER_CALLBACKS;
59 BOOT => 'PERL_INITIALIZE_IMAGER_CALLBACKS;',
60 FILTERS => \&_inline_filter,
73 map { (my $tmp = $_) =~ s/::/__/g; $_ => $tmp } @inline_replace;
75 my $inline_replace_re = "\\b(" . join('|', @inline_replace) . ")\\b";
80 $code =~ s/$inline_replace_re/$inline_replace{$1}/g;
87 Returns -I options suitable for use with ExtUtils::MakeMaker's INC
94 my $base = $class->base_dir();
96 "-I" . $base . '/Imager/include',
101 Returns the full path to Imager's installed typemap.
107 my $base = $class->base_dir();
109 $base . '/Imager/typemap';
120 Tony Cook <tony@imager.perl.org>
128 Imager, Imager::API, Imager::Inline, Imager::APIRef.