The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

mkpkgconfig - create pkg-config metadata files

VERSION

version v2.0.1

SYNOPSIS

mkpkgconfig options

DESCRIPTION

mkpkgconfig creates a pkg-config metadata (.pc) file. pkg-config variables and keywords are defined on the command line, variable dependencies are validated, and the configuration file is output. "Standard" variables (such as $libdir, $datadir) may be automatically created, and only variables which are used are output.

Variables and Keywords

pkg-config distinguishes between variables and keywords. Values for both may include interpolated variables, as in Cflags: -I ${include}.

Some commonly used variables have dedicated command line options:

  --prefix     : base prefix for paths
  --package    : filesystem compatible package name
  --modversion : package version

(--modversion sets the version variable; the --version flag will output the version of mkpkgconfig).

--modversion is required. --prefix and --package may be required if a keyword requires them or --auto is set and auto-generated variables require it.

Common keywords also have dedicated options:

  --Name
  --Conflicts
  --Description
  --Requires
  --Libs
  --Cflags
  --URL

The --Name and --Description options are required. The Version keyword is automatically set to ${version}. It is not possible to set it directly from the command line.

Other variables and keywords may be specified via the --var and --kwd options, respectively:

  --var name=value
  --kwd name=value

which may be used more than once.

Automatically Generated Variables

mkpkgconfig can automatically generate a number of "standard" variables, such as bindir, libdir, etc, based upon the prefix variable. Use the "--list-auto" option to output a list of these variables.

OPTIONS

General Options

--output

Where the configuration file is to be written. It defaults to the standard output stream.

--usevars all|requested|needed

Which variables should be output. It defaults to needed.

all

output all variables, needed or not, including automatically generated ones if --auto was specified;

requested

output only requested variables (via--var variable=value or --auto=variable,...) and keyword dependencies;

needed

output only those variables actually used by keywords

Variables

--var name=value

Set the variable named name to value.

--prefix value

Set the prefix variable.

--package value

Set the package variable

--modversion value

Set the version value

--auto
--auto list of variables

Generate a set of variables. Use --list-auto to see what is generated.

If passed a list of variable names, those will be output if --usevars is set to requested.

Individual variables may be overriden using --var.

--list-auto

Output a list of the automatically generated keywords and exit.

Keywords

--kwd name=value

Set the keyword named name to value.

--Name value
--name value

Set the Name keyword. This parameter is required.

--Description value
--description value

Set the Description keyword. This parameter is required.

--Requires value
--requires value

Set the Requires keyword.

--Conflicts value
--conflicts value

Set the Conflicts keyword.

--Libs value
--libs value

Set the Libs keyword.

--Cflags value
--cflags value

Set the Cflags keyword.

Miscellaneous

--version

Output the version of mkpkgconfig and exit.

--help

Output a short help message and exit.

--manual

Output the manual and exit.

SUPPORT

Bugs

Please report any bugs or feature requests to bug-app-mkpkgconfig@rt.cpan.org or through the web interface at: https://rt.cpan.org/Public/Dist/Display.html?Name=App-mkpkgconfig

Source

Source is available at

  https://gitlab.com/djerius/app-mkpkgconfig

and may be cloned from

  https://gitlab.com/djerius/app-mkpkgconfig.git

AUTHOR

Diab Jerius <djerius@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2020 by Smithsonian Astrophysical Observatory.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007