root/trunk/plagger/tools/check-dependencies.pl

Revision 1354 (checked in by miyagawa, 5 years ago)

use check-dependencies.pl to check 'required' dependencis, not recommended

  • Property svn:executable set to *
Line 
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 use FindBin;
6 chdir "$FindBin::Bin/..";
7
8 check_dependencies();
9
10 sub check_dependencies {
11     # hack Module::Install to collect requires/recommends
12     $INC{"inc/Module/Install.pm"} = __PACKAGE__;
13
14     package Makefile;
15     no warnings 'once';
16     *tests = *name = *all_from = *features = *tests = *use_test_base =
17     *auto_include = *auto_install = *install_script = *WriteAll = *include_deps = sub { };
18
19     *requires = *build_requires = ::check_module(1);
20     *recommends = ::check_module(0);
21
22     do "Makefile.PL";
23 }
24
25 sub check_module {
26     my $required = shift;
27
28     return sub {
29         my $module = shift;
30         my $ver    = shift;
31         eval ($ver ? qq{ use $module $ver } : qq{ use $module });
32         if ($@) {
33             print "$module: missing" . ($required ? " (required)" : '');
34         } else {
35             print "$module: " . (defined $module->VERSION ? $module->VERSION : 'undef');
36         }
37         print "\n";
38     };
39 }
Note: See TracBrowser for help on using the browser.