Win32-ShellExt
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
# -*- cperl -*-
#
# (C) 2002 Jean-Baptiste Nivoit
#
use ExtUtils::MakeMaker;
use Config;
my $samples = {
CtxtMenu::Base64Decode => { 'MIME::Base64' => 2.12 }, # ok
CtxtMenu::Base64Encode => { 'MIME::Base64' => 2.12 }, # ok
##not tested. CtxtMenu::BinHex => { 'Convert::BinHex' => 1.119 },
# CtxtMenu::CanonicalXML => { 'XML::Canonical' => 0.04 },
CtxtMenu::CopyPath => {}, # ok
CtxtMenu::FIGlet => { 'Text::FIGlet' => 1.05 }, # ok
CtxtMenu::Gzip => { 'Compress::Zlib' => 1.16 },
CtxtMenu::Gunzip => { 'Compress::Zlib' => 1.16 },
CtxtMenu::MD5 => { 'MD5' => 1.7 },
CtxtMenu::MagickConvertJPG => { 'Image::Magick' => 5.41 },
CtxtMenu::MagickConvertGIF => { 'Image::Magick' => 5.41 },
CtxtMenu::MagickConvert => { 'Image::Magick' => 5.41 },
# CtxtMenu::ExpandTabs => { 'Text::Tabs' => 98.112801 },
CtxtMenu::UnexpandTabs => { 'Text::Tabs' => 98.112801 },
# CtxtMenu::PDF => { 'PDF' => 1.11 },
CtxtMenu::PDF => { 'Text::PDF' => 0.18 }, # ok, but needs correct parameters for the booklet
CtxtMenu::RegisterDll => { 'Win32' => 0.18 },
CtxtMenu::UnregisterDll => { 'Win32' => 0.18 },
CtxtMenu::RenameMP3 => { 'MP3::Info' => 0.91, 'Win32API::File' => 0.08 }, # KO!
CtxtMenu::SwapFileNames => {}, # ok
CtxtMenu::Tar => { 'Archive::Tar' => 0.22 },
# CtxtMenu::Tgz => { 'Archive::Tar' => 0.22, 'Compress::Zlib' => 1.16 },
CtxtMenu::Whitespace => { 'Whitespace' => 1.02 }, # ok
CtxtMenu::Zip => { 'Archive::Zip' => 0.11 },
CtxtMenu::BinHex => { 'Convert::BinHex' => 1.119 },
#KO CtxtMenu::LinkExtor => { 'Win32::Clipboard' => 0.51 ,
# 'HTML::Parser' => 3.25, # HTML::LinkExtor
# 'URI::URL' => 1.18 }
QueryInfo::PM => {},
QueryInfo::ELisp => {},
QueryInfo::TeX => {},
QueryInfo::LineCount => {},
QueryInfo::Shortcut => {},
QueryInfo::JpgSize => { 'Image::Magick' => 5.41 },
QueryInfo::PDF => { 'PDF' => 1.11 },
QueryInfo::Zip => { 'Archive::Zip' => 0.11 },
ColumnProvider::JpgSize => { 'Image::Magick' => 5.41 },
ColumnProvider::PM => {},
# CopyHook::Veto => {},
#KO CtxtMenu::Join => { 'Text::Trie' => 0.1 }
# untested DragAndDropHandler::Zip => {Archive::Zip' => 0.11 },
};
$my_samples = {
#KO Gzip => { 'Compress::Zlib' => 1.16 },
#KO MD5 => { 'MD5' => 1.7 },
# MagickConvertJPG => { 'Image::Magick' => 5.41 },
#KO Tar => { 'Archive::Tar' => 0.22 },
# Zip => { 'Archive::Zip' => 0.11 }
MagickConvert => { 'Image::Magick' => 5.41 },
# for testing with multiple commands...
# CopyPath => {},
# FIGlet => { 'Text::FIGlet' => 1.05 },
};
# Before writing the makefile, let's check that CLSID's really are unique, this will avoids surprises afterwards...
my %clsids;
push @INC,"examples";
map {
my $clsid = eval "use Win32::ShellExt::$_; Win32::ShellExt::$_->hkeys()->{CLSID}; ";
if(defined($clsid)) { # might be undefined if module loading failed..
#print "Win32::ShellExt::$_ => $clsid\n";
die "duplicate CLSID in Win32::ShellExt::$_ and Win32::ShellExt::".$clsids{$clsid}."\n" if(defined($clsids{$clsid}));
$clsids{$clsid} = $_;
}
} sort keys %$samples;
pop @INC;
WriteMakefile(
NAME => 'Win32::ShellExt',
VERSION_FROM => 'ShellExt.pm', # finds $VERSION
PREREQ_PM => { Win32::TieRegistry => 0.23 }, # FIXME infer that from %samples
'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz'},
LIBS => [''],
DEFINE => '', # e.g., '-DHAVE_SOMETHING'
INC => '', # e.g., '-I/usr/include/other'
AUTHOR => 'Jean-Baptiste Nivoit <jbnivoit@hotmail.com>',
ABSTRACT => 'Allows to write Windows shell extensions in Perl',
C => 'Win32ShellExt.cpp debug.cpp',
# O => 'Win32ShellExt.obj debug.obj',
H => 'PerlQueryInfoExt.h Win32ShellExt.h debug.h exports.h PerlQueryInfoExt.cpp',
# DIR => ['examples'],
# PMLIBDIRS => ['examples'],
# PMLIBDIRS => ['ShellExt'],
# PMLIBDIRS => ['.', 'ShellExt', 'ShellExt/CopyHook', 'ShellExt/ColumnProvider', 'ShellExt/QueryInfo'],
PMLIBDIRS => ['ShellExt', 'ShellExt/CopyHook', 'ShellExt/ColumnProvider', 'ShellExt/QueryInfo', 'ShellExt/CtxtMenu', 'ShellExt/DragAndDropHandler'],
# EXE_FILES => ['perlshellext.dll'],
INST_BIN => ['perlshellext.dll'],
XS => { 'ShellExt/CopyHook.xs' => 'ShellExt/CopyHook.c' }
);
# This adds hand-coded rules to build the embedding DLL.
sub MY::makefile {
my $self = shift;
$self->MM::makefile() .
'
XSUBPPDIR = C:\perl\lib\ExtUtils
XSUBPP = $(XSUBPPDIR)/xsubpp
XSPROTOARG =
XSUBPPDEPS = $(XSUBPPDIR)\typemap typemap $(XSUBPP)
XSUBPPARGS = -typemap $(XSUBPPDIR)\typemap -typemap typemap
.xs.c:
$(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc && $(MV) $*.xsc $*.c
perlshellext.dll : Win32ShellExt.obj debug.obj
link -dll -def:Win32ShellExt.def -nologo -out:.\perlshellext.dll Win32ShellExt.obj debug.obj d:\build\perl\p561\lib\CORE\perl56.lib user32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib -libpath:c:\perl\bin /SUBSYSTEM:windows
( run in 1.371 second using v1.01-cache-2.11-cpan-140bd7fdf52 )