Add Base.hs with Shake imports and build paths.
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 1 Aug 2015 16:18:52 +0000 (17:18 +0100)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 1 Aug 2015 16:18:52 +0000 (17:18 +0100)
25 files changed:
src/Base.hs [new file with mode: 0644]
src/Builder.hs
src/Expression.hs
src/Main.hs
src/Oracles/ArgsHash.hs
src/Oracles/Base.hs
src/Oracles/DependencyList.hs
src/Oracles/Flag.hs
src/Oracles/PackageData.hs
src/Oracles/Setting.hs
src/Oracles/WindowsRoot.hs
src/Package.hs
src/Rules.hs
src/Rules/Actions.hs
src/Rules/Config.hs
src/Rules/Data.hs
src/Rules/Dependencies.hs
src/Rules/Oracles.hs
src/Rules/Package.hs
src/Settings/GhcCabal.hs
src/Settings/Util.hs
src/Stage.hs
src/Target.hs
src/Util.hs
src/Way.hs

diff --git a/src/Base.hs b/src/Base.hs
new file mode 100644 (file)
index 0000000..7cf3a4e
--- /dev/null
@@ -0,0 +1,20 @@
+module Base (
+    shakeFilesPath, configPath,
+    module Development.Shake,
+    module Development.Shake.Util,
+    module Development.Shake.Config,
+    module Development.Shake.Classes,
+    module Development.Shake.FilePath
+    ) where
+
+import Development.Shake
+import Development.Shake.Util
+import Development.Shake.Config
+import Development.Shake.Classes
+import Development.Shake.FilePath
+
+shakeFilesPath :: FilePath
+shakeFilesPath = "_build/"
+
+configPath :: FilePath
+configPath = "shake/cfg/"
index 20b33ca..a148fc5 100644 (file)
@@ -4,6 +4,7 @@ module Builder (
     Builder (..), builderKey, builderPath, specified
     ) where
 
+import Base
 import Util
 import Stage
 import Data.List
index 419a988..6ec6ef4 100644 (file)
@@ -15,13 +15,13 @@ module Expression (
     ) where
 
 import Way
+import Base
 import Stage
 import Builder
 import Package
 import Target (Target)
 import Target hiding (Target(..))
 import qualified Target
-import Oracles.Base
 import Data.List
 import Data.Monoid
 import Control.Monad.Reader hiding (liftIO)
index 50420af..c7e076a 100644 (file)
@@ -1,7 +1,7 @@
+import Base
 import Rules
-import Development.Shake
 
-main = shakeArgs shakeOptions{shakeFiles="_build/"} $ do
+main = shakeArgs shakeOptions{shakeFiles = shakeFilesPath} $ do
     oracleRules     -- see module Rules.Oracles
     packageRules    -- see module Rules
     configRules     -- see module Rules.Config
index cb5b467..1972638 100644 (file)
@@ -4,11 +4,10 @@ module Oracles.ArgsHash (
     askArgsHash, argsHashOracle
     ) where
 
+import Base
 import Expression
 import Settings.Args
 import Control.Applicative
-import Development.Shake
-import Development.Shake.Classes
 
 newtype ArgsHashKey = ArgsHashKey FullTarget
     deriving (Show, Typeable, Eq, Hashable, Binary, NFData)
index b75d0d4..a51d465 100644 (file)
@@ -1,27 +1,16 @@
 {-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
 
 module Oracles.Base (
-    module Development.Shake,
-    module Development.Shake.Util,
-    module Development.Shake.Config,
-    module Development.Shake.Classes,
     askConfigWithDefault, askConfig, configOracle,
-    configPath,
     putOracle
     ) where
 
+import Base
 import Util
 import Control.Applicative
 import Control.Monad.Extra
-import Development.Shake
-import Development.Shake.Util
-import Development.Shake.Config
-import Development.Shake.Classes
 import qualified Data.HashMap.Strict as Map
 
-configPath :: FilePath
-configPath = "shake" -/- "cfg"
-
 newtype ConfigKey = ConfigKey String
     deriving (Show, Typeable, Eq, Hashable, Binary, NFData)
 
index 1ffc46d..ce1d0a6 100644 (file)
@@ -5,6 +5,7 @@ module Oracles.DependencyList (
     dependencyListOracle
     ) where
 
+import Base
 import Util
 import Oracles.Base
 import Data.List
index 4152a97..dfa0920 100644 (file)
@@ -4,6 +4,7 @@ module Oracles.Flag (
     platformSupportsSharedLibs, ghcWithSMP, ghcWithNativeCodeGen
     ) where
 
+import Base
 import Util
 import Oracles.Base
 import Oracles.Setting
index fd30cc3..ec6e86e 100644 (file)
@@ -5,6 +5,7 @@ module Oracles.PackageData (
     pkgData, pkgDataList, packageDataOracle
     ) where
 
+import Base
 import Util
 import Oracles.Base
 import Data.List
index 5ae4497..33067b1 100644 (file)
@@ -6,6 +6,7 @@ module Oracles.Setting (
     ghcEnableTablesNextToCode
     ) where
 
+import Base
 import Stage
 import Oracles.Base
 
index 261ca93..3cd0c86 100644 (file)
@@ -4,6 +4,7 @@ module Oracles.WindowsRoot (
     windowsRoot, windowsRootOracle
     ) where
 
+import Base
 import Util
 import Oracles.Base
 import Data.List
index 590f9ff..946dfed 100644 (file)
@@ -2,10 +2,10 @@
 
 module Package (Package (..), library, topLevel, setCabal) where
 
+import Base
 import Util
 import Data.Function
 import GHC.Generics
-import Development.Shake.Classes
 
 -- pkgPath is the path to the source code relative to the root
 data Package = Package
index b63687f..6d153e1 100644 (file)
@@ -4,6 +4,7 @@ module Rules (
     module Rules.Package,
     ) where
 
+import Base
 import Util
 import Stage
 import Expression
@@ -12,7 +13,6 @@ import Rules.Package
 import Rules.Oracles
 import Settings.Packages
 import Settings.TargetDirectory
-import Development.Shake
 
 -- generateTargets needs package-data.mk files of all target packages
 -- TODO: make interpretDiff total
index 2730c55..c0a1617 100644 (file)
@@ -2,6 +2,7 @@ module Rules.Actions (
     build, buildWithResources, run, verboseRun
     ) where
 
+import Base
 import Util
 import Builder
 import Expression
@@ -9,7 +10,6 @@ import qualified Target
 import Settings.Args
 import Settings.Util
 import Oracles.ArgsHash
-import Development.Shake
 
 -- Build a given target using an appropriate builder and acquiring necessary
 -- resources. Force a rebuilt if the argument list has changed since the last
index 84cc6c3..5946bfb 100644 (file)
@@ -1,9 +1,7 @@
-module Rules.Config (
-    configRules
-    ) where
+module Rules.Config (configRules) where
 
+import Base
 import Util
-import Oracles.Base
 
 configRules :: Rules ()
 configRules = do
index 1114c88..aae711f 100644 (file)
@@ -1,5 +1,6 @@
 module Rules.Data (buildPackageData) where
 
+import Base
 import Util
 import Package
 import Builder
@@ -10,7 +11,6 @@ import Settings.TargetDirectory
 import Rules.Actions
 import Control.Applicative
 import Control.Monad.Extra
-import Development.Shake
 
 -- TODO: Add ordering between packages? (see ghc.mk)
 -- Build package-data.mk by using GhcCabal to process pkgCabal file
index 656e853..21f40d1 100644 (file)
@@ -1,5 +1,6 @@
 module Rules.Dependencies (buildPackageDependencies) where
 
+import Base
 import Util
 import Builder
 import Package
@@ -9,7 +10,6 @@ import Oracles.PackageData
 import Settings.Util
 import Settings.TargetDirectory
 import Rules.Actions
-import Development.Shake
 
 buildPackageDependencies :: StagePackageTarget -> Rules ()
 buildPackageDependencies target =
index ba15031..31a4918 100644 (file)
@@ -2,6 +2,7 @@ module Rules.Oracles (
     oracleRules
     ) where
 
+import Base
 import Oracles.Base
 import Oracles.ArgsHash
 import Oracles.PackageData
index f2e377e..a6365e8 100644 (file)
@@ -2,10 +2,10 @@ module Rules.Package (
     buildPackage
     ) where
 
+import Base
 import Expression
 import Rules.Data
 import Rules.Dependencies
-import Development.Shake
 
 buildPackage :: StagePackageTarget -> Rules ()
 buildPackage = buildPackageData <> buildPackageDependencies
index a3d43f7..092f97a 100644 (file)
@@ -3,13 +3,13 @@ module Settings.GhcCabal (
     ) where
 
 import Way
+import Base
 import Util
 import Stage
 import Builder
 import Package
 import Switches
 import Expression
-import Oracles.Base
 import Oracles.Flag
 import Oracles.Setting
 import Settings.User
index a9aabba..d2daa0b 100644 (file)
@@ -16,11 +16,11 @@ module Settings.Util (
     -- argPackageConstraints,
     ) where
 
+import Base
 import Util
 import Builder
 import Package
 import Expression
-import Oracles.Base
 import Oracles.Flag
 import Oracles.Setting
 import Oracles.PackageData
index 3cf8676..303818a 100644 (file)
@@ -4,8 +4,8 @@ module Stage (
     Stage (..)
     ) where
 
+import Base
 import GHC.Generics
-import Development.Shake.Classes
 
 data Stage = Stage0 | Stage1 | Stage2 | Stage3 deriving (Eq, Enum, Generic)
 
index dc0bde7..c431ace 100644 (file)
@@ -5,11 +5,11 @@ module Target (
     ) where
 
 import Way
+import Base
 import Stage
 import Package
 import Builder
 import GHC.Generics
-import Development.Shake.Classes
 
 -- Target captures all parameters relevant to the current build target:
 -- * Stage and Package being built,
index 1c43801..73bf1f3 100644 (file)
@@ -1,7 +1,6 @@
 module Util (
     module Data.Char,
     module System.Console.ANSI,
-    module Development.Shake.FilePath,
     replaceIf, replaceEq, replaceSeparators,
     unifyPath, (-/-),
     chunksOfSize,
@@ -9,12 +8,11 @@ module Util (
     bimap, minusOrd, intersectOrd
     ) where
 
+import Base
 import Data.Char
 import Control.Monad
 import System.IO
 import System.Console.ANSI
-import Development.Shake
-import Development.Shake.FilePath
 
 replaceIf :: (a -> Bool) -> a -> [a] -> [a]
 replaceIf p to = map (\from -> if p from then to else from)
index c0b49e3..b48a29d 100644 (file)
@@ -13,13 +13,12 @@ module Way ( -- TODO: rename to "Way"?
     detectWay
     ) where
 
+import Base
 import Util
 import Oracles.Setting
-import Control.Applicative
-import Development.Shake
-import Development.Shake.Classes
 import Data.List
 import Data.IntSet (IntSet)
+import Control.Applicative
 import qualified Data.IntSet as Set
 
 data WayUnit = Threaded