@@ -1,10 +1,10 @@
11-- | Perform an actual build, generate a binary package database and a
22-- documentation directory in the process.
3−{-# LANGUAGE CPP #-}
3+{-# LANGUAGE CPP #-}
44{-# LANGUAGE DeriveDataTypeable #-}
5−{-# LANGUAGE RecordWildCards #-}
65{-# LANGUAGE NoImplicitPrelude #-}
76{-# LANGUAGE OverloadedStrings #-}
7+{-# LANGUAGE RecordWildCards #-}
88module Stackage.PerformBuild
99 ( performBuild
1010 , PerformBuild (..)
@@ -12,22 +12,25 @@ module Stackage.PerformBuild
1212 , pbDocDir
1313 ) where
1414
15−import Stackage.BuildConstraints
16−import Stackage.PackageDescription
17−import Stackage.BuildPlan
18−import Stackage.Prelude hiding (pi)
19−import qualified Data.Map as Map
20−import Control.Concurrent.STM.TSem
21−import Control.Monad.Writer.Strict (execWriter, tell)
22−import Data.NonNull (fromNullable)
23−import Control.Concurrent.Async (async)
24−import System.IO.Temp (withSystemTempDirectory)
25−import Filesystem (createTree, removeTree, isDirectory, rename, canonicalizePath, getWorkingDirectory)
26−import System.IO (withBinaryFile, IOMode (WriteMode))
27−import Filesystem.Path (parent)
28−import qualified Filesystem.Path as F
29−import System.Environment (getEnvironment)
30−import System.Directory (findExecutable)
15+import Control.Concurrent.Async (async)
16+import Control.Concurrent.STM.TSem
17+import Control.Monad.Writer.Strict (execWriter, tell)
18+import qualified Data.Map as Map
19+import Data.NonNull (fromNullable)
20+import Filesystem (canonicalizePath, createTree,
21+ getWorkingDirectory, isDirectory,
22+ removeTree, rename)
23+import Filesystem.Path (parent)
24+import qualified Filesystem.Path as F
25+import Stackage.BuildConstraints
26+import Stackage.BuildPlan
27+import Stackage.PackageDescription
28+import Stackage.Prelude hiding (pi)
29+import System.Directory (findExecutable)
30+import System.Environment (getEnvironment)
31+import System.IO (IOMode (WriteMode),
32+ withBinaryFile)
33+import System.IO.Temp (withSystemTempDirectory)
3134
3235data BuildException = BuildException (Map PackageName BuildFailure) [Text]
3336 deriving Typeable
@@ -51,18 +54,18 @@ data BuildFailure = DependencyFailed PackageName
5154instance Exception BuildFailure
5255
5356data PerformBuild = PerformBuild
54− { pbPlan :: BuildPlan
55− , pbInstallDest :: FilePath
56− , pbLog :: ByteString -> IO ()
57− , pbLogDir :: FilePath
58− , pbJobs :: Int
57+ { pbPlan :: BuildPlan
58+ , pbInstallDest :: FilePath
59+ , pbLog :: ByteString -> IO ()
60+ , pbLogDir :: FilePath
61+ , pbJobs :: Int
5962 , pbGlobalInstall :: Bool
6063 -- ^ Register packages in the global database
6164 }
6265
6366data PackageInfo = PackageInfo
64− { piPlan :: PackagePlan
65− , piName :: PackageName
67+ { piPlan :: PackagePlan
68+ , piName :: PackageName
6669 , piResult :: TMVar Bool
6770 }
6871
@@ -200,17 +203,17 @@ performBuild' pb@PerformBuild {..} = withBuildDir $ \builddir -> do
200203#endif
201204
202205data SingleBuild = SingleBuild
203− { sbSem :: TSem
204− , sbErrsVar :: TVar (Map PackageName BuildFailure)
205− , sbWarningsVar :: TVar ([Text] -> [Text])
206− , sbActive :: TVar Int
207− , sbToolMap :: Map ExeName (Set PackageName)
208− , sbPackageMap :: Map PackageName PackageInfo
209− , sbBuildDir :: FilePath
210− , sbPackageInfo :: PackageInfo
206+ { sbSem :: TSem
207+ , sbErrsVar :: TVar (Map PackageName BuildFailure)
208+ , sbWarningsVar :: TVar ([Text] -> [Text])
209+ , sbActive :: TVar Int
210+ , sbToolMap :: Map ExeName (Set PackageName)
211+ , sbPackageMap :: Map PackageName PackageInfo
212+ , sbBuildDir :: FilePath
213+ , sbPackageInfo :: PackageInfo
211214 , sbRegisterMutex :: MVar ()
212− , sbModifiedEnv :: [(String, String)]
213− , sbHaddockFiles :: TVar (Map Text FilePath) -- ^ package-version, .haddock file
215+ , sbModifiedEnv :: [(String, String)]
216+ , sbHaddockFiles :: TVar (Map Text FilePath) -- ^ package-version, .haddock file
214217 }
215218
216219singleBuild :: PerformBuild -> SingleBuild -> IO ()