language-ninja-0.2.0: A library for dealing with the Ninja build language.

CopyrightCopyright 2017 Awake Security
LicenseApache-2.0
Maintaineropensource@awakesecurity.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Language.Ninja.IR.Target0.1.0

Contents

Description

Types relating to Ninja build targets, outputs, and dependencies.

Synopsis

Target

data Target Source 0.1.0#

This type represents a Ninja target name.

Instances

Eq Target  

Methods

(==) :: Target -> Target -> Bool #

(/=) :: Target -> Target -> Bool #

Ord Target  
Read Target  
Show Target  
IsString Target  

Methods

fromString :: String -> Target #

Generic Target  

Associated Types

type Rep Target :: * -> * #

Methods

from :: Target -> Rep Target x #

to :: Rep Target x -> Target #

Hashable Target  

Methods

hashWithSalt :: Int -> Target -> Int #

hash :: Target -> Int #

ToJSON Target  
ToJSONKey Target  
FromJSON Target  
FromJSONKey Target  
NFData Target  

Methods

rnf :: Target -> () #

(Monad m, Serial m Text) => Serial m Target

Uses the underlying IText instance.0.1.0

Methods

series :: Series m Target #

(Monad m, CoSerial m Text) => CoSerial m Target

Uses the underlying IText instance.0.1.0

Methods

coseries :: Series m b -> Series m (Target -> b) #

type Rep Target  
type Rep Target = D1 (MetaData "Target" "Language.Ninja.IR.Target" "language-ninja-0.2.0-4aVVODOvkNMFxGcRpnztag" True) (C1 (MetaCons "MkTarget" PrefixI True) (S1 (MetaSel (Just Symbol "_targetIText") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 IText)))

makeTarget :: Text -> Target Source 0.1.0#

Construct a Target from some Text.

targetIText :: Iso' Target IText Source 0.1.0#

An isomorphism between a Target and its underlying IText.

targetText :: Iso' Target Text Source 0.1.0#

An isomorphism that gives access to a Text-typed view of a Target, even though the underlying data has type IText.

This is equivalent to targetIText . from itext.

Output

data Output Source 0.1.0#

A Ninja build output.

More information is available here.

Instances

Eq Output  

Methods

(==) :: Output -> Output -> Bool #

(/=) :: Output -> Output -> Bool #

Ord Output  
Read Output  
Show Output  
Generic Output  

Associated Types

type Rep Output :: * -> * #

Methods

from :: Output -> Rep Output x #

to :: Rep Output x -> Output #

Hashable Output

Default Hashable instance via Generic.0.1.0

Methods

hashWithSalt :: Int -> Output -> Int #

hash :: Output -> Int #

ToJSON Output

Converts to {target: …, type: …}.0.1.0

FromJSON Output

Inverse of the ToJSON instance.0.1.0

NFData Output

Default NFData instance via Generic.0.1.0

Methods

rnf :: Output -> () #

(Monad m, Serial m Text) => Serial m Output

Default Serial instance via Generic.0.1.0

Methods

series :: Series m Output #

(Monad m, CoSerial m Text) => CoSerial m Output

Default CoSerial instance via Generic.0.1.0

Methods

coseries :: Series m b -> Series m (Output -> b) #

type Rep Output  
type Rep Output = D1 (MetaData "Output" "Language.Ninja.IR.Target" "language-ninja-0.2.0-4aVVODOvkNMFxGcRpnztag" True) (C1 (MetaCons "MkOutput" PrefixI True) (S1 (MetaSel (Just Symbol "_outputTarget") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Target)))

makeOutput Source 0.1.0#

Arguments

:: Target

The underlying target.

-> Output 

Construct an Output.

outputTarget :: Lens' Output Target Source 0.1.0#

A lens for the Target of an Output.

Dependency

data Dependency Source 0.1.0#

A build dependency.

More information is available here.

Instances

Eq Dependency  
Ord Dependency  
Read Dependency  
Show Dependency  
Generic Dependency  

Associated Types

type Rep Dependency :: * -> * #

Hashable Dependency

Default Hashable instance via Generic.0.1.0

ToJSON Dependency

Converts to {target: …, type: …}.0.1.0

FromJSON Dependency

Inverse of the ToJSON instance.0.1.0

NFData Dependency

Default NFData instance via Generic.0.1.0

Methods

rnf :: Dependency -> () #

(Monad m, Serial m Text) => Serial m Dependency

Default Serial instance via Generic.0.1.0

(Monad m, CoSerial m Text) => CoSerial m Dependency

Default CoSerial instance via Generic.0.1.0

Methods

coseries :: Series m b -> Series m (Dependency -> b) #

type Rep Dependency  
type Rep Dependency = D1 (MetaData "Dependency" "Language.Ninja.IR.Target" "language-ninja-0.2.0-4aVVODOvkNMFxGcRpnztag" False) (C1 (MetaCons "MkDependency" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "_dependencyTarget") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Target)) (S1 (MetaSel (Just Symbol "_dependencyType") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 DependencyType))))

makeDependency Source 0.1.0#

Arguments

:: Target

The underlying target.

-> DependencyType

The dependency type (normal, implicit, or order-only).

-> Dependency 

Construct a Dependency.

data DependencyType Source 0.1.0#

The type of a Dependency: normal, implicit, or order-only.

Constructors

0.1.0NormalDependency

A normal dependency.

0.1.0OrderOnlyDependency

An order-only dependency. These are only rebuilt if there is at least one non-order-only dependency that is out of date.

Section 4.3 "Types of Prerequisites" in the GNU Make manual has a good explanation of this concept.

Instances

Eq DependencyType  
Ord DependencyType  
Read DependencyType  
Show DependencyType  
Generic DependencyType  

Associated Types

type Rep DependencyType :: * -> * #

Hashable DependencyType

Default Hashable instance via Generic.0.1.0

ToJSON DependencyType

Converts to "normal", "implicit", and "order-only" respectively.0.1.0

FromJSON DependencyType

Inverse of the ToJSON instance.0.1.0

NFData DependencyType

Default NFData instance via Generic.0.1.0

Methods

rnf :: DependencyType -> () #

Monad m => Serial m DependencyType

Default Serial instance via Generic.0.1.0

Monad m => CoSerial m DependencyType

Default CoSerial instance via Generic.0.1.0

Methods

coseries :: Series m b -> Series m (DependencyType -> b) #

type Rep DependencyType  
type Rep DependencyType = D1 (MetaData "DependencyType" "Language.Ninja.IR.Target" "language-ninja-0.2.0-4aVVODOvkNMFxGcRpnztag" False) ((:+:) (C1 (MetaCons "NormalDependency" PrefixI False) U1) (C1 (MetaCons "OrderOnlyDependency" PrefixI False) U1))

_NormalDependency :: Prism' DependencyType () Source 0.1.0#

A prism for the NormalDependency constructor.

_OrderOnlyDependency :: Prism' DependencyType () Source 0.1.0#

A prism for the OrderOnlyDependency constructor.