Skip to content

PerlAlien/PkgConfig-LibPkgConf

Repository files navigation

NAME
    PkgConfig::LibPkgConf - Interface to .pc file interface via libpkgconf

SYNOPSIS
     use PkgConfig::LibPkgConf;
 
     if(pkgconf_exists('libarchive'))
     {
       my $version = pkgconf_version('libarchive');
       my $cflags  = pkgconf_cflags('libarchive');
       my $libs    = pkgconf_libs('libarchive');
     }

DESCRIPTION
    Many libraries in compiled languages such as C or C++ provide ".pc"
    files to specify the flags required for compiling and linking against
    those libraries. Traditionally, the command line program "pkg-config" is
    used to query these files. This module provides a Perl level API using
    "libpkgconf" to these files.

    This module provides a simplified interface for getting the existence,
    version, cflags and library flags needed for compiling against a
    package, using the default compiled in configuration of "pkgconf". For a
    more powerful, but complicated interface see
    PkgConfig::LibPkgConf::Client. In addition, PkgConfig::LibPkgConf::Util
    provides some useful utility functions that are also provided by
    "pkgconf".

FUNCTIONS
  pkgconf_exists
     my $bool = pkgconf_exists $package_name;

    Returns true if the package is available.

    Exported by default.

  pkgconf_version
     my $version = pkgconf_version $package_name;

    Returns the version of the package, if it exists. Will throw an
    exception if not found.

    Exported by default.

  pkgconf_cflags
     my $cflags = pkgconf_cflags $package_name;

    Returns the compiler flags for the package, if it exists. Will throw an
    exception if not found.

    Exported by default.

  pkgconf_cflags_static
     my $cflags = pkgconf_cflags_static $package_name;

    Returns the static compiler flags for the package, if it exists. Will
    throw an exception if not found.

  pkgconf_libs
     my $libs = pkgconf_libs $package_name;

    Returns the linker library flags for the package, if it exists. Will
    throw an exception if not found.

    Exported by default.

  pkgconf_libs_static
     my $libs = pkgconf_libs_static $package_name;

    Returns the static linker library flags for the package, if it exists.
    Will throw an exception if not found.

SUPPORT
    IRC #native on irc.perl.org

    Project GitHub tracker:

    <https://github.com/plicease/PkgConfig-LibPkgConf/issues>

    If you want to contribute, please open a pull request on GitHub:

    <https://github.com/plicease/PkgConfig-LibPkgConf/pulls>

SEE ALSO
    The best entry point to the low level "pkgconf" interface can be found
    via PkgConfig::LibPkgConf::Client.

    Alternatives include:

    PkgConfig
        Pure Perl implementation of "pkg-config" which can be used from the
        command line, or as an API from Perl. Does not require pkg-config in
        your path, so is a safe dependency for CPAN modules.

    ExtUtils::PkgConfig
        Wrapper for the "pkg-config" command line interface. This module
        will fail to install if "pkg-config" cannot be found in the "PATH",
        so it is not safe to use a dependency if you want your CPAN module
        to work on platforms where "pkg-config" is not installed.

    Alien::Base
        Provides tools for building non-Perl libraries and making them
        dependencies for your CPAN modules, even on platforms where the
        non-Perl libraries aren't already installed. Includes hooks for
        probing "pkg-config" ".pc" files using either "pkg-config" or
        PkgConfig.

ACKNOWLEDGMENTS
    Thanks to the "pkgconf" developers for their efforts:

    <https://github.com/pkgconf/pkgconf/graphs/contributors>

AUTHOR
    Graham Ollis

    Contributors:

    A. Wilcox (awilfox)

    Petr Pisar (ppisar)

COPYRIGHT AND LICENSE
    This software is copyright (c) 2016 Graham Ollis.

    This is free software; you may redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.