File Coverage

blib/lib/Alien/Autotools.pm
Criterion Covered Total %
statement 48 52 92.3
branch 5 10 50.0
condition n/a
subroutine 15 19 78.9
pod 6 9 66.6
total 74 90 82.2


line stmt bran cond sub pod time code
1             package Alien::Autotools;
2              
3 4     4   738133 use strict;
  4         21  
  4         113  
4 4     4   17 use warnings;
  4         8  
  4         124  
5 4     4   21 use base qw( Exporter );
  4         7  
  4         437  
6 4     4   424 use File::Which ();
  4         901  
  4         65  
7 4     4   700 use Path::Tiny ();
  4         10111  
  4         113  
8 4     4   1093 use Alien::autoconf;
  4         37700  
  4         51  
9 4     4   40534 use Alien::automake;
  4         642  
  4         43  
10 4     4   15731 use Alien::libtool;
  4         639  
  4         45  
11 4     4   15785 use Alien::m4;
  4         732  
  4         46  
12              
13             our @EXPORT_OK = qw(autoconf_dir automake_dir libtool_dir);
14              
15             # ABSTRACT: Build and install the GNU build system.
16             our $VERSION = '1.06'; # VERSION
17              
18              
19             sub bin_dir
20             {
21 12         4573 my @dir = map { $_->bin_dir }
22 3     3 1 2236 map { "Alien::$_" }
  12         28  
23             qw( autoconf automake libtool m4 );
24 3         1367 @dir;
25             }
26              
27             sub _dir_from_exe
28             {
29 0     0   0 my($name) = @_;
30 0         0 my $path = File::Which::which($name);
31 0 0       0 die "unable to find $name in PATH" unless $path;
32 0         0 Path::Tiny->new($path)->parent->stringify;
33             }
34              
35              
36             sub aclocal_dir
37             {
38 2     2 1 1972 my @dir;
39 2         35 foreach my $alien (map { "Alien::$_" } qw( autoconf automake libtool m4 ))
  8         21  
40             {
41 8         163 my $dir = Path::Tiny->new($alien->dist_dir)->child(qw( share aclocal ));
42 8 100       3727 push @dir, $dir if -d $dir;
43             }
44 2         61 @dir;
45             }
46              
47              
48             sub versions
49             {
50 1     1 1 12 my %ver;
51 1         4 foreach my $alien (qw( autoconf automake libtool m4 ))
52             {
53 4         53 my $class = "Alien::$alien";
54 4         39 $ver{$alien} = $class->version;
55             }
56 1         22 %ver;
57             }
58              
59              
60             sub autoconf_dir ()
61             {
62 2     2 1 112 my($dir) = Alien::autoconf->bin_dir;
63 2 50       1152 $dir
64             ? $dir
65             : _dir_from_exe('autoconf');
66             }
67              
68              
69             sub automake_dir ()
70             {
71 2     2 1 13 my($dir) = Alien::automake->bin_dir;
72 2 50       957 $dir
73             ? $dir
74             : _dir_from_exe('automake');
75             }
76              
77              
78             sub libtool_dir ()
79             {
80 2     2 1 13 my($dir) = Alien::libtool->bin_dir;
81 2 50       993 $dir
82             ? $dir
83             : _dir_from_exe('libtool');
84             }
85              
86       0 0   sub cflags {}
87       0 0   sub libs {}
88       0 0   sub dynamic_libs {}
89              
90             1;
91              
92             __END__