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 ifpkg-config
cannot be found in thePATH
, so it is not safe to use a dependency if you want your CPAN module to work on platforms wherepkg-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 eitherpkg-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.