Cabal- A framework for packaging Haskell software

Copyright(c) Duncan Coutts 2012
Safe HaskellNone




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 TargetInfos to be builtregisteredwhatever.

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

Read a list of user-supplied build target strings and resolve them to BuildTargets 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.


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.

Eq BuildTarget Source # 
Instance details
Show BuildTarget Source # 
Instance details
Generic BuildTarget Source # 
Instance details

Associated Types

type Rep BuildTarget :: * -> * #

Binary BuildTarget Source # 
Instance details
type Rep BuildTarget Source # 
Instance details

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

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

Parsing user build targets

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.