blob: 214c316200e328038aec187459cd6cdb008f8c7c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
package ExtUtils::MM_Any;
use strict;
use vars qw($VERSION @ISA);
$VERSION = 0.04;
use Config;
use File::Spec;
=head1 NAME
ExtUtils::MM_Any - Platform agnostic MM methods
=head1 SYNOPSIS
FOR INTERNAL USE ONLY!
package ExtUtils::MM_SomeOS;
# Temporarily, you have to subclass both. Put MM_Any first.
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
@ISA = qw(ExtUtils::MM_Any ExtUtils::Unix);
=head1 DESCRIPTION
B<FOR INTERNAL USE ONLY!>
ExtUtils::MM_Any is a superclass for the ExtUtils::MM_* set of
modules. It contains methods which are either inherently
cross-platform or are written in a cross-platform manner.
Subclass off of ExtUtils::MM_Any I<and> ExtUtils::MM_Unix. This is a
temporary solution.
B<THIS MAY BE TEMPORARY!>
=head1 Inherently Cross-Platform Methods
These are methods which are by their nature cross-platform and should
always be cross-platform.
=head2 File::Spec wrappers B<DEPRECATED>
The following methods are deprecated wrappers around File::Spec
functions. They exist from before File::Spec did and in fact are from
which File::Spec sprang.
They are all deprecated. Please use File::Spec directly.
=over 4
=item canonpath
=cut
sub canonpath {
shift;
return File::Spec->canonpath(@_);;
}
=item catdir
=cut
sub catdir {
shift;
return File::Spec->catdir(@_);
}
=item catfile
=cut
sub catfile {
shift;
return File::Spec->catfile(@_);
}
=item curdir
=cut
my $Curdir = File::Spec->curdir;
sub curdir {
return $Curdir;
}
=item file_name_is_absolute
=cut
sub file_name_is_absolute {
shift;
return File::Spec->file_name_is_absolute(@_);
}
=item path
=cut
sub path {
return File::Spec->path();
}
=item rootdir
=cut
my $Rootdir = File::Spec->rootdir;
sub rootdir {
return $Rootdir;
}
=item updir
=cut
my $Updir = File::Spec->updir;
sub updir {
return $Updir;
}
=back
=head1 Thought To Be Cross-Platform Methods
These are methods which are thought to be cross-platform by virtue of
having been written in a way to avoid incompatibilities.
=over 4
=item test_via_harness
my $command = $mm->test_via_harness($perl, $tests);
Returns a $command line which runs the given set of $tests with
Test::Harness and the given $perl.
Used on the t/*.t files.
=cut
sub test_via_harness {
my($self, $perl, $tests) = @_;
return qq{\t$perl "-MExtUtils::testlib" "-MExtUtils::Command::MM" }.
qq{"-e" "test_harness(\$(TEST_VERBOSE))" $tests\n};
}
=item test_via_script
my $command = $mm->test_via_script($perl, $script);
Returns a $command line which just runs a single test without
Test::Harness. No checks are done on the results, they're just
printed.
Used for test.pl, since they don't always follow Test::Harness
formatting.
=cut
sub test_via_script {
my($self, $perl, $script) = @_;
return "\t$perl \$(TEST_LIBS) $script\n";
}
=back
=head1 AUTHOR
Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix
and ExtUtils::MM_Win32.
=cut
1;
|