Copyright | (c) Duncan Coutts 2012 |
---|---|
License | BSD-like |
Maintainer | duncan@community.haskell.org |
Safe Haskell | None |
Language | Haskell2010 |
Distribution.Simple.BuildTarget
Description
Handling for user-specified build targets
Synopsis
- readTargetInfos :: Verbosity -> PackageDescription -> LocalBuildInfo -> [ String ] -> IO [ TargetInfo ]
- readBuildTargets :: Verbosity -> PackageDescription -> [ String ] -> IO [ BuildTarget ]
- data BuildTarget
- showBuildTarget :: PackageId -> BuildTarget -> String
- data QualLevel
- buildTargetComponentName :: BuildTarget -> ComponentName
- data UserBuildTarget
- readUserBuildTargets :: [ String ] -> ([ UserBuildTargetProblem ], [ UserBuildTarget ])
- showUserBuildTarget :: UserBuildTarget -> String
- data UserBuildTargetProblem = UserBuildTargetUnrecognised String
- reportUserBuildTargetProblems :: Verbosity -> [ UserBuildTargetProblem ] -> IO ()
- resolveBuildTargets :: PackageDescription -> [( UserBuildTarget , Bool )] -> ([ BuildTargetProblem ], [ BuildTarget ])
- data BuildTargetProblem
- reportBuildTargetProblems :: Verbosity -> [ BuildTargetProblem ] -> IO ()
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 built
registered
whatever.
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
showBuildTarget :: PackageId -> BuildTarget -> String Source #
Unambiguously render a
BuildTarget
, so that it can
be parsed in all situations.
Instances
Enum QualLevel Source # | |
Defined in Distribution.Simple.BuildTarget Methods succ :: QualLevel -> QualLevel Source # pred :: QualLevel -> QualLevel Source # toEnum :: Int -> QualLevel Source # fromEnum :: QualLevel -> Int Source # enumFrom :: QualLevel -> [ QualLevel ] Source # enumFromThen :: QualLevel -> QualLevel -> [ QualLevel ] Source # enumFromTo :: QualLevel -> QualLevel -> [ QualLevel ] Source # enumFromThenTo :: QualLevel -> QualLevel -> QualLevel -> [ QualLevel ] Source # |
|
Show QualLevel Source # | |
Parsing user build targets
data UserBuildTarget Source #
Various ways that a user may specify a build target.
Instances
Eq UserBuildTarget Source # | |
Defined in Distribution.Simple.BuildTarget Methods (==) :: UserBuildTarget -> UserBuildTarget -> Bool Source # (/=) :: UserBuildTarget -> UserBuildTarget -> Bool Source # |
|
Ord UserBuildTarget Source # | |
Defined in Distribution.Simple.BuildTarget Methods compare :: UserBuildTarget -> UserBuildTarget -> Ordering Source # (<) :: UserBuildTarget -> UserBuildTarget -> Bool Source # (<=) :: UserBuildTarget -> UserBuildTarget -> Bool Source # (>) :: UserBuildTarget -> UserBuildTarget -> Bool Source # (>=) :: UserBuildTarget -> UserBuildTarget -> Bool Source # max :: UserBuildTarget -> UserBuildTarget -> UserBuildTarget Source # min :: UserBuildTarget -> UserBuildTarget -> UserBuildTarget Source # |
|
Show UserBuildTarget Source # | |
Defined in Distribution.Simple.BuildTarget |
readUserBuildTargets :: [ String ] -> ([ UserBuildTargetProblem ], [ UserBuildTarget ]) Source #
data UserBuildTargetProblem Source #
Constructors
UserBuildTargetUnrecognised String |
Instances
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 |
|
BuildTargetNoSuch UserBuildTarget [( String , String )] |
|
BuildTargetAmbiguous UserBuildTarget [( UserBuildTarget , BuildTarget )] |
Instances
Show BuildTargetProblem Source # | |
Defined in Distribution.Simple.BuildTarget |
reportBuildTargetProblems :: Verbosity -> [ BuildTargetProblem ] -> IO () Source #