App-Info
view release on metacpan or search on metacpan
lib/App/Info/Lib/Iconv.pm view on Meta::CPAN
=item /usr/local/include
=item /usr/include
=item /sw/include
=back
B<Events:>
=over 4
=item info
Searching for include directory
=item error
Cannot find include directory
=item unknown
Enter a valid libiconv include directory
=back
=cut
sub inc_dir {
my $self = shift;
return unless $self->{executable};
unless (exists $self->{inc_dir}) {
$self->info("Searching for include directory");
my @incs = $self->search_inc_names;
if (my $dir = $u->first_cat_dir(\@incs, $self->search_inc_dirs)) {
$self->{inc_dir} = $dir;
} else {
$self->error("Cannot find include directory");
my $cb = sub { $u->first_cat_dir(\@incs, $_) };
$self->{inc_dir} =
$self->unknown( key => 'iconv inc dir',
callback => $cb,
error => "Iconv include file not found in " .
"directory");
}
# So which is the include file? Needed for the version number.
$self->{inc_file} = $u->first_file(
map { $u->catfile($self->{inc_dir}, $_) } @incs
) if $self->{inc_dir};
}
return $self->{inc_dir};
}
##############################################################################
=head3 lib_dir
my $lib_dir = $iconv->lib_dir;
Returns the directory path in which a libiconv library was found. The search
looks for a file with a name returned by C<search_lib_names()> in a directory
returned by C<search_lib_dirs()>.
B<Events:>
=over 4
=item info
Searching for library directory
=item error
Cannot find library directory
=item unknown
Enter a valid libiconv library directory
=back
=cut
sub lib_dir {
my $self = shift;
return unless $self->{executable};
unless (exists $self->{lib_dir}) {
$self->info("Searching for library directory");
my @files = $self->search_lib_names;
if (my $dir = $u->first_cat_dir(\@files, $self->search_lib_dirs)) {
# Success!
$self->{lib_dir} = $dir;
} else {
$self->error("Cannot not find library direcory");
my $cb = sub { $u->first_cat_dir(\@files, $_) };
$self->{lib_dir} = $self->unknown(
key => 'iconv lib dir',
callback => $cb,
error => "Library files not found in directory"
);
}
}
return $self->{lib_dir};
}
##############################################################################
=head3 so_lib_dir
my $so_lib_dir = $iconv->so_lib_dir;
Returns the directory path in which a libiconv shared object library was
found. The search looks for a file with a name returned by
C<search_so_lib_names()> in a directory returned by C<search_lib_dirs()>.
Returns the directory path in which a libiconv shared object library was
found. App::Info::Lib::Iconv searches for these files:
<Events:>
=over 4
=item info
Searching for shared object library directory
=item error
Cannot find shared object library directory
=item unknown
Enter a valid libiconv shared object library directory
=back
=cut
sub so_lib_dir {
my $self = shift;
return unless $self->{executable};
unless (exists $self->{so_lib_dir}) {
$self->info("Searching for shared object library directory");
my @files = $self->search_so_lib_names;
if (my $dir = $u->first_cat_dir(\@files, $self->search_lib_dirs)) {
$self->{so_lib_dir} = $dir;
} else {
$self->error("Cannot find shared object library directory");
my $cb = sub { $u->first_cat_dir(\@files, $_) };
$self->{so_lib_dir} =
$self->unknown( key => 'iconv so dir',
callback => $cb,
error => "Shared object libraries not " .
"found in directory");
}
}
return $self->{so_lib_dir};
}
##############################################################################
=head3 home_url
my $home_url = $iconv->home_url;
Returns the libiconv home page URL.
=cut
sub home_url { 'http://www.gnu.org/software/libiconv/' }
##############################################################################
( run in 0.465 second using v1.01-cache-2.11-cpan-5a3173703d6 )