cabal-matrix-1.0.0.0: Matrix builds for cabal
Safe HaskellNone
LanguageGHC2021

Cabal.Matrix.CabalArgs

Description

Converting high-level build matrix concepts into cabal commandlines.

Synopsis

Documentation

data CabalArgs Source #

A single invocation of cabal.

data CabalStep Source #

Cabal allows interrupting the build process at multiple points, which is useful to know which stage the build failed at.

Constructors

DryRun

Run with --dry-run, only creating a plan.

OnlyDownload

Run with --only-download, creating a plan and only downloading dependencies.

OnlyDependencies

Run with --only-dependencies, creating a plan, downloading and building only the dependencies.

FullBuild

Run without any of the aforementioned options, fully building the selected targets.

data PerCabalStep a Source #

A collection of values per each CabalStep. Useful for "memoizing" a function CabalStep -> a.

Constructors

PerCabalStep 

Fields

Instances

Instances details
Foldable PerCabalStep Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Methods

fold :: Monoid m => PerCabalStep m -> m #

foldMap :: Monoid m => (a -> m) -> PerCabalStep a -> m #

foldMap' :: Monoid m => (a -> m) -> PerCabalStep a -> m #

foldr :: (a -> b -> b) -> b -> PerCabalStep a -> b #

foldr' :: (a -> b -> b) -> b -> PerCabalStep a -> b #

foldl :: (b -> a -> b) -> b -> PerCabalStep a -> b #

foldl' :: (b -> a -> b) -> b -> PerCabalStep a -> b #

foldr1 :: (a -> a -> a) -> PerCabalStep a -> a #

foldl1 :: (a -> a -> a) -> PerCabalStep a -> a #

toList :: PerCabalStep a -> [a] #

null :: PerCabalStep a -> Bool #

length :: PerCabalStep a -> Int #

elem :: Eq a => a -> PerCabalStep a -> Bool #

maximum :: Ord a => PerCabalStep a -> a #

minimum :: Ord a => PerCabalStep a -> a #

sum :: Num a => PerCabalStep a -> a #

product :: Num a => PerCabalStep a -> a #

Traversable PerCabalStep Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Methods

traverse :: Applicative f => (a -> f b) -> PerCabalStep a -> f (PerCabalStep b) #

sequenceA :: Applicative f => PerCabalStep (f a) -> f (PerCabalStep a) #

mapM :: Monad m => (a -> m b) -> PerCabalStep a -> m (PerCabalStep b) #

sequence :: Monad m => PerCabalStep (m a) -> m (PerCabalStep a) #

Functor PerCabalStep Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Methods

fmap :: (a -> b) -> PerCabalStep a -> PerCabalStep b #

(<$) :: a -> PerCabalStep b -> PerCabalStep a #

tabulateCabalStep' :: (CabalStep -> a) -> PerCabalStep a Source #

Note: the function is evaluated (to WHNF) at each input.

data CabalMode Source #

In either case if we are in a cabal project then we can only install packages that are in the dependency closure of the project, and they will be subject to constraints defined in the project file, if any.

Constructors

ProjectBuild 
InstallLib

Assume that we're in a cabal project and run cabal build targeting the project's packages and their dependencies.

data Flavor Source #

Options defining what cell in the build matrix we're in.

Constructors

Flavor 

Instances

Instances details
Monoid Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Semigroup Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Generic Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Associated Types

type Rep Flavor 
Instance details

Defined in Cabal.Matrix.CabalArgs

type Rep Flavor = D1 ('MetaData "Flavor" "Cabal.Matrix.CabalArgs" "cabal-matrix-1.0.0.0-6d6v0bFUrGrBBiTUHolWwF" 'False) (C1 ('MetaCons "Flavor" 'PrefixI 'True) (S1 ('MetaSel ('Just "unorderedOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Text)) :*: S1 ('MetaSel ('Just "orderedOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))

Methods

from :: Flavor -> Rep Flavor x #

to :: Rep Flavor x -> Flavor #

Show Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Eq Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Methods

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

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

Hashable Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

Methods

hashWithSalt :: Int -> Flavor -> Int #

hash :: Flavor -> Int #

type Rep Flavor Source # 
Instance details

Defined in Cabal.Matrix.CabalArgs

type Rep Flavor = D1 ('MetaData "Flavor" "Cabal.Matrix.CabalArgs" "cabal-matrix-1.0.0.0-6d6v0bFUrGrBBiTUHolWwF" 'False) (C1 ('MetaCons "Flavor" 'PrefixI 'True) (S1 ('MetaSel ('Just "unorderedOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Text)) :*: S1 ('MetaSel ('Just "orderedOptions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Text])))