PkgConfig::LibPkgConf::Package(3) User Contributed Perl Documentation 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: If you want to contribute, please open a pull request on GitHub: 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.40.0 2024-11-29 PkgConfig::LibPkgConf::Package(3)