Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PkgConfig::LibPkgConf:UserkContributed Perl DPkgConfig::LibPkgConf::Package(3)

NAME
       PkgConfig::LibPkgConf::Package -	Represents a package

SYNOPSIS
	use PkgConfig::LibPkgConf::Client;

	my $client = PkgConfig::LibPkgConf::Client->new;
	$client->env;

	my $pkg	= $client->find('libarchive');

	# use with system in scalar form:
	my $cflags = $pkg->cflags;
	my $libs = $pkg->libs;
	system "$cc $cflags foo.c";
	system "$cc -o foo foo.o $libs";

	# use with system in list form:
	my @cflags = $pkg->list_cflags;
	my @libs   = $pkg->list_libs;
	system $cc, @cflags, 'foo.c';
	system $cc, -p => 'foo', 'foo.o', @libs;

DESCRIPTION
       The PkgConfig::LibPkgConf::Package object stores	package	information.
       Part of the package information is the compiler and linker flags.  This
       can be fetched as strings with "cflags" and "libs" and as a list	with
       "list_cflags" and "list_libs".  In the string form, escapes are
       retained, but in	list form the white space escapes are converted	into
       spaces.	That means if you are using the	string form of "system"/"exec"
       you should use the string accessors, and	if you are using the list form
       of "system"/"exec" you should use the list accessors.

ATTRIBUTES
   refcount
       Internal	reference count	used by	"pkgconf".

   id
       The id of the package.

   filename
       The filename of the ".pc" file.

   realname
       The real	name for the package.

   version
       The version of the package.

   description
       Description of the package.

   url
       URL for the package.

   pc_filedir
       TODO

METHODS
   libs
       Library flags.  This usually includes things like "-L/foo/lib" and
       "-lfoo".

   libs_static
       Static library flags.

   cflags
       Compiler	flags.	This usually includes things like "-I/foo/include" and
       "-DFOO=1".

   cflags_static
       Static compiler flags.

   list_libs
	my @fragments =	$package->list_libs;

       Library flags as	a list of fragments PkgConfig::LibPkgConf::Fragment.
       This is similar to the "libs" method above, but since it	returns	a list
       instead of a single string, it can be used to filter for	specific
       flags.  For example:

	# equivalent to	pkgconf	--libs-only-L
	my @lib_dirs = grep { $_->type eq 'L' }	$package->list_libs;
	# equivalent to	pkgconf	--libs-only-l
	my @libs = grep	{ $_->type eq 'l' } $package->list_libs;

   list_libs_static
	my @fragments =	$package->list_libs_static;

       Similar to "list_libs", but for the static libs flags.

   list_cflags
	my @fragments =	$package->list_cflags;

       Compiler	flags as a list	of fragments PkgConfig::LibPkgConf::Fragment.
       This is similar to the "cflags" method above, but since it returns a
       list instead of a single	string,	it can be used to filter for specific
       flags.  For example:

	# equivalent to	pkgconf	--cflags-only-I
	my @include_dirs = grep	{ $_->type eq 'I' } $package->list_cflags;
	# equivalent to	pkgconf	--cflags-only-other
	my @other_cflags = grep	{ $_->type ne 'I' } $package->list_cflags;

   list_cflags_static
	my @fragments =	$package->list_cflags_static;

       Similar to "list_cflags", but for the static compiler flags.

   variable
	my $value = $package->variable($key);

       Look up the value for the given variable.  Returns the value if found,
       otherwise it will return	undef (technically empty list).

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
       For additional related modules, see PkgConfig::LibPkgConf

AUTHOR
       Graham Ollis

       For additional contributors see PkgConfig::LibPkgConf

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.

perl v5.32.0			  2020-05-15 PkgConfig::LibPkgConf::Package(3)

NAME | SYNOPSIS | DESCRIPTION | ATTRIBUTES | METHODS | SUPPORT | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=PkgConfig::LibPkgConf::Package&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help