Cabal-3.16.0.0: A framework for packaging Haskell software
Copyright(c) Duncan Coutts 2012
LicenseBSD-like
Maintainerduncan@community.haskell.org
Safe HaskellNone
LanguageHaskell2010

Distribution.Simple.BuildTarget

Description

Handling for user-specified build targets

Main interface

readTargetInfos :: Verbosity -> PackageDescription -> LocalBuildInfo -> [String] -> IO [TargetInfo] Source #

Take a list of String build targets, and parse and validate them into actual TargetInfo s to be builtregisteredwhatever.

readBuildTargets :: Verbosity -> PackageDescription -> [String] -> IO [BuildTarget] Source #

Read a list of user-supplied build target strings and resolve them to BuildTarget s according to a PackageDescription . If there are problems with any of the targets e.g. they don't exist or are misformatted, throw an IOException .

Build targets

data BuildTarget Source #

A fully resolved build target.

Constructors

BuildTargetComponent ComponentName

A specific component

BuildTargetModule ComponentName ModuleName

A specific module within a specific component.

BuildTargetFile ComponentName FilePath

A specific file within a specific component.

Instances

Instances details
Instance details

Defined in Distribution.Simple.BuildTarget

Associated Types

Show BuildTarget Source #
Instance details

Defined in Distribution.Simple.BuildTarget

Binary BuildTarget Source #
Instance details

Defined in Distribution.Simple.BuildTarget

Eq BuildTarget Source #
Instance details

Defined in Distribution.Simple.BuildTarget

type Rep BuildTarget Source #
Instance details

Defined in Distribution.Simple.BuildTarget

type Rep BuildTarget = D1 ('MetaData "BuildTarget" "Distribution.Simple.BuildTarget" "Cabal-3.16.0.0-1YZHuvI2dgR4GlGeuk23es" 'False) (C1 ('MetaCons "BuildTargetComponent" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName)) :+: (C1 ('MetaCons "BuildTargetModule" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ModuleName)) :+: C1 ('MetaCons "BuildTargetFile" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ComponentName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FilePath))))

showBuildTarget :: PackageId -> BuildTarget -> String Source #

Unambiguously render a BuildTarget , so that it can be parsed in all situations.

data QualLevel Source #

Constructors

QL1
QL2
QL3

Instances

Instances details
Instance details

Defined in Distribution.Simple.BuildTarget

buildTargetComponentName :: BuildTarget -> ComponentName Source #

Parsing user build targets

data UserBuildTarget Source #

Various ways that a user may specify a build target.

Instances

Instances details

readUserBuildTargets :: [String] -> ([UserBuildTargetProblem], [UserBuildTarget]) Source #

showUserBuildTarget :: UserBuildTarget -> String Source #

data UserBuildTargetProblem Source #

Constructors

Instances

Instances details

reportUserBuildTargetProblems :: Verbosity -> [UserBuildTargetProblem] -> IO () Source #

Resolving build targets

resolveBuildTargets :: PackageDescription -> [(UserBuildTarget, Bool)] -> ([BuildTargetProblem], [BuildTarget]) Source #

Given a bunch of user-specified targets, try to resolve what it is they refer to.

data BuildTargetProblem Source #

Constructors

BuildTargetExpected UserBuildTarget [String] String
expected thing
(actually got)
BuildTargetNoSuch UserBuildTarget [(String, String)]
(no such thing, actually got)

Instances

Instances details

reportBuildTargetProblems :: Verbosity -> [BuildTargetProblem] -> IO () Source #

AltStyle によって変換されたページ (->オリジナル) /