Cabal-syntax-3.16.0.0: A library for working with .cabal files
Safe HaskellNone
LanguageHaskell2010

Distribution.Types.ForeignLib

Synopsis

Documentation

data ForeignLib #

A foreign library stanza is like a library stanza, except that the built code is intended for consumption by a non-Haskell client.

Constructors

ForeignLib 

Fields

Instances

Instances details
HasBuildInfo ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Methods

buildInfo :: Lens' ForeignLib BuildInfo #

buildable :: Lens' ForeignLib Bool #

buildTools :: Lens' ForeignLib [LegacyExeDependency] #

buildToolDepends :: Lens' ForeignLib [ExeDependency] #

cppOptions :: Lens' ForeignLib [String] #

asmOptions :: Lens' ForeignLib [String] #

cmmOptions :: Lens' ForeignLib [String] #

ccOptions :: Lens' ForeignLib [String] #

cxxOptions :: Lens' ForeignLib [String] #

jsppOptions :: Lens' ForeignLib [String] #

ldOptions :: Lens' ForeignLib [String] #

hsc2hsOptions :: Lens' ForeignLib [String] #

pkgconfigDepends :: Lens' ForeignLib [PkgconfigDependency] #

frameworks :: Lens' ForeignLib [RelativePath Framework 'File] #

extraFrameworkDirs :: Lens' ForeignLib [SymbolicPath Pkg ('Dir Framework)] #

asmSources :: Lens' ForeignLib [SymbolicPath Pkg 'File] #

cmmSources :: Lens' ForeignLib [SymbolicPath Pkg 'File] #

cSources :: Lens' ForeignLib [SymbolicPath Pkg 'File] #

cxxSources :: Lens' ForeignLib [SymbolicPath Pkg 'File] #

jsSources :: Lens' ForeignLib [SymbolicPath Pkg 'File] #

hsSourceDirs :: Lens' ForeignLib [SymbolicPath Pkg ('Dir Source)] #

otherModules :: Lens' ForeignLib [ModuleName] #

virtualModules :: Lens' ForeignLib [ModuleName] #

autogenModules :: Lens' ForeignLib [ModuleName] #

defaultLanguage :: Lens' ForeignLib (Maybe Language) #

otherLanguages :: Lens' ForeignLib [Language] #

defaultExtensions :: Lens' ForeignLib [Extension] #

otherExtensions :: Lens' ForeignLib [Extension] #

oldExtensions :: Lens' ForeignLib [Extension] #

extraLibs :: Lens' ForeignLib [String] #

extraLibsStatic :: Lens' ForeignLib [String] #

extraGHCiLibs :: Lens' ForeignLib [String] #

extraBundledLibs :: Lens' ForeignLib [String] #

extraLibFlavours :: Lens' ForeignLib [String] #

extraDynLibFlavours :: Lens' ForeignLib [String] #

extraLibDirs :: Lens' ForeignLib [SymbolicPath Pkg ('Dir Lib)] #

extraLibDirsStatic :: Lens' ForeignLib [SymbolicPath Pkg ('Dir Lib)] #

includeDirs :: Lens' ForeignLib [SymbolicPath Pkg ('Dir Include)] #

includes :: Lens' ForeignLib [SymbolicPath Include 'File] #

autogenIncludes :: Lens' ForeignLib [RelativePath Include 'File] #

installIncludes :: Lens' ForeignLib [RelativePath Include 'File] #

options :: Lens' ForeignLib (PerCompilerFlavor [String]) #

profOptions :: Lens' ForeignLib (PerCompilerFlavor [String]) #

sharedOptions :: Lens' ForeignLib (PerCompilerFlavor [String]) #

profSharedOptions :: Lens' ForeignLib (PerCompilerFlavor [String]) #

staticOptions :: Lens' ForeignLib (PerCompilerFlavor [String]) #

customFieldsBI :: Lens' ForeignLib [(String, String)] #

targetBuildDepends :: Lens' ForeignLib [Dependency] #

mixins :: Lens' ForeignLib [Mixin] #

Structured ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Binary ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

NFData ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Methods

rnf :: ForeignLib -> () Source #

Monoid ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Semigroup ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Eq ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Ord ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Data ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ForeignLib -> c ForeignLib #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ForeignLib #

toConstr :: ForeignLib -> Constr #

dataTypeOf :: ForeignLib -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ForeignLib) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ForeignLib) #

gmapT :: (forall b. Data b => b -> b) -> ForeignLib -> ForeignLib #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ForeignLib -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ForeignLib -> r #

gmapQ :: (forall d. Data d => d -> u) -> ForeignLib -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ForeignLib -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ForeignLib -> m ForeignLib #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignLib -> m ForeignLib #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ForeignLib -> m ForeignLib #

Generic ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Associated Types

type Rep ForeignLib 
Instance details

Defined in Distribution.Types.ForeignLib

Read ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

Show ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

type Rep ForeignLib # 
Instance details

Defined in Distribution.Types.ForeignLib

emptyForeignLib :: ForeignLib #

An empty foreign library.

foreignLibModules :: ForeignLib -> [ModuleName] #

Modules defined by a foreign library.

foreignLibIsShared :: ForeignLib -> Bool #

Is the foreign library shared?

foreignLibVersion :: ForeignLib -> OS -> [Int] #

Get a version number for a foreign library. If we're on Linux, and a Linux version is specified, use that. If we're on Linux, and libtool-style version-info is specified, translate that field into appropriate version numbers. Otherwise, this feature is unsupported so we don't return any version data.

data LibVersionInfo #

Instances

Instances details
Parsec LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Pretty LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Structured LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Binary LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

NFData LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Methods

rnf :: LibVersionInfo -> () Source #

Eq LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Ord LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Data LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> LibVersionInfo -> c LibVersionInfo #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c LibVersionInfo #

toConstr :: LibVersionInfo -> Constr #

dataTypeOf :: LibVersionInfo -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c LibVersionInfo) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c LibVersionInfo) #

gmapT :: (forall b. Data b => b -> b) -> LibVersionInfo -> LibVersionInfo #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LibVersionInfo -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LibVersionInfo -> r #

gmapQ :: (forall d. Data d => d -> u) -> LibVersionInfo -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LibVersionInfo -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LibVersionInfo -> m LibVersionInfo #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LibVersionInfo -> m LibVersionInfo #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LibVersionInfo -> m LibVersionInfo #

Generic LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Associated Types

type Rep LibVersionInfo 
Instance details

Defined in Distribution.Types.ForeignLib

Read LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

Show LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

type Rep LibVersionInfo # 
Instance details

Defined in Distribution.Types.ForeignLib

mkLibVersionInfo :: (Int, Int, Int) -> LibVersionInfo #

Construct LibVersionInfo from (current, revision, age) numbers.

For instance, mkLibVersionInfo (3,0,0) constructs a LibVersionInfo representing the version-info 3:0:0.

All version components must be non-negative.

libVersionInfoCRA :: LibVersionInfo -> (Int, Int, Int) #

From a given LibVersionInfo, extract the (current, revision, age) numbers.

libVersionNumber :: LibVersionInfo -> (Int, Int, Int) #

Given a version-info field, produce a major.minor.build version

libVersionNumberShow :: LibVersionInfo -> String #

Given a version-info field, return "major.minor.build" as a String

libVersionMajor :: LibVersionInfo -> Int #

Return the major version of a version-info field.