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 )