Cabal-syntax-3.14.2.0: src/Distribution/Types/PkgconfigDependency.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Types.PkgconfigDependency
( PkgconfigDependency (..)
) where
import Distribution.Compat.Prelude
import Prelude ()
import Distribution.Types.PkgconfigName
import Distribution.Types.PkgconfigVersionRange
import Distribution.Parsec
import Distribution.Pretty
import qualified Distribution.Compat.CharParsing as P
-- | Describes a dependency on a pkg-config library
--
-- @since 2.0.0.2
data PkgconfigDependency
= PkgconfigDependency
PkgconfigName
PkgconfigVersionRange
deriving (Generic, Read, Show, Eq, Ord, Data)
instance Binary PkgconfigDependency
instance Structured PkgconfigDependency
instance NFData PkgconfigDependency where rnf = genericRnf
instance Pretty PkgconfigDependency where
pretty (PkgconfigDependency name PcAnyVersion) = pretty name
pretty (PkgconfigDependency name ver) = pretty name <+> pretty ver
instance Parsec PkgconfigDependency where
parsec = do
name <- parsec
P.spaces
verRange <- parsec <|> pure anyPkgconfigVersion
pure $ PkgconfigDependency name verRange