hs-pkg-config-0.2.0.0: Create pkg-config configuration files

Copyright(c) 2014 Peter Trsko
LicenseBSD3
Maintainerpeter.trsko@gmail.com
Stabilityexperimental
PortabilityNoImplicitPrelude
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.PkgConfig.Internal.PkgConfig

Contents

Description

Data type describing pkg-config configuration file.

Synopsis

PkgConfig

data PkgConfig Source

Representation of pkg-config configuration file.

Constructors

PkgConfig 

Fields

_pkgVariables :: [PkgVariable]

Variable definitions.

_pkgName :: PkgName

Human-readable name for a library or package. This field is not used by pkg-config tool for queries, because it uses .pc file base name.

_pkgDescription :: PkgDescription

Brief description of the package.

_pkgUrl :: PkgUrl

URL where people can get more information about and download the package.

_pkgVersion :: PkgVersion

Version of the package.

_pkgRequires :: PkgTemplate

List of packages required by this package and their version bounds.

_pkgRequiresPrivate :: PkgTemplate

List of private packages required by this package but not exposed to applications. The version specific rules from the Requires field also apply here.

_pkgConflicts :: PkgTemplate

An optional field describing packages that this one conflicts with. The version specific rules from the Requires field also apply here. This field also takes multiple instances of the same package. E.g.:

Conflicts: bar < 1.2.3, bar >= 1.3.0.
_pkgCflags :: PkgTemplate

Compiler flags specific to this package and any required libraries that don't support pkg-config. If the required libraries support pkg-config, they should be added to Requires (_pkgRequires) or Requires.private (_pkgRequiresPrivate).

_pkgLibs :: PkgTemplate

Linking flags specific to this package and any required libraries that don't support pkg-config. The same rules as for Cflags (_pkgCflags) field apply here.

_pkgLibsPrivate :: PkgTemplate

Linking flags for private libraries required by this package but not exposed to applications. The same rules as for Cflags (_pkgCflags) field apply here.

Type Aliases

type PkgVariable = (Text, PkgTemplate) Source

Variable definition consisting of its name and value in form of PkgTemplate.

type PkgVersion = PkgTemplate Source

Package version may use variable expansion and so it is represented by PkgConfig.

Lenses

pkgVariables :: Functor f => ([PkgVariable] -> f [PkgVariable]) -> PkgConfig -> f PkgConfig Source

Variable definitions.

pkgName :: Functor f => (Text -> f Text) -> PkgConfig -> f PkgConfig Source

Human-readable name of a library or package. This field is not used by pkg-config tool for queries, because it uses .pc file base name.

pkgDescription :: Functor f => (Text -> f Text) -> PkgConfig -> f PkgConfig Source

Brief description of the package.

pkgUrl :: Functor f => (Text -> f Text) -> PkgConfig -> f PkgConfig Source

URL where people can get more information about and download the package.

pkgVersion :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

Version of the package.

pkgRequires :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

List of packages required by this package and their version bounds.

pkgRequiresPrivate :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

Compiler flags specific to this package and any required libraries that don't support pkg-config. If the required libraries support pkg-config, they should be added to Requires (pkgRequires) or Requires.private (pkgRequiresPrivate).

pkgConflicts :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

An optional field describing packages that this one conflicts with. The version specific rules from the Requires field also apply here. This field also takes multiple instances of the same package. E.g.:

Conflicts: bar < 1.2.3, bar >= 1.3.0.

pkgCflags :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

Compiler flags specific to this package and any required libraries that don't support pkg-config. If the required libraries support pkg-config, they should be added to Requires (pkgRequires) or Requires.private (pkgRequiresPrivate).

pkgLibs :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

Linking flags specific to this package and any required libraries that don't support pkg-config. The same rules as for Cflags (pkgCflags) field apply here.

pkgLibsPrivate :: Functor f => (PkgTemplate -> f PkgTemplate) -> PkgConfig -> f PkgConfig Source

Linking flags for private libraries required by this package but not exposed to applications. The same rules as for Cflags (pkgCflags) field apply here.

Serialization

toStrictText :: PkgConfig -> Text Source

Serialize PkgConfig in to strict Text.