@@ -14,7 +14,7 @@ import Distribution.Simple.InstallDirs as I
14import Distribution.Simple.LocalBuildInfo as L
14import Distribution.Simple.LocalBuildInfo as L
15import qualified Distribution.Simple.Setup as S
15import qualified Distribution.Simple.Setup as S
16import qualified Distribution.Simple.Program as P
16import qualified Distribution.Simple.Program as P
17−import Distribution.Simple.Utils (createDirectoryIfMissingVerbose, rewriteFile, notice, installOrdinaryFiles)
17+import Distribution.Simple.Utils
18import Distribution.Compiler
18import Distribution.Compiler
19import Distribution.PackageDescription
19import Distribution.PackageDescription
20import Distribution.Text
20import Distribution.Text
@@ -66,28 +66,28 @@ windres verbosity = P.runProgramInvocation verbosity . P.simpleProgramInvocation
67usesGMP :: S.ConfigFlags -> Bool
67usesGMP :: S.ConfigFlags -> Bool
68usesGMP flags =
68usesGMP flags =
69− case lookup (mkFlagName "gmp") (S.configConfigurationsFlags flags) of
69+ case lookupFlagAssignment (mkFlagName "gmp") (S.configConfigurationsFlags flags) of
70 Just True -> True
70 Just True -> True
71 Just False -> False
71 Just False -> False
72 Nothing -> False
72 Nothing -> False
74execOnly :: S.ConfigFlags -> Bool
74execOnly :: S.ConfigFlags -> Bool
75execOnly flags =
75execOnly flags =
76− case lookup (mkFlagName "execonly") (S.configConfigurationsFlags flags) of
76+ case lookupFlagAssignment (mkFlagName "execonly") (S.configConfigurationsFlags flags) of
77 Just True -> True
77 Just True -> True
78 Just False -> False
78 Just False -> False
79 Nothing -> False
79 Nothing -> False
81isRelease :: S.ConfigFlags -> Bool
81isRelease :: S.ConfigFlags -> Bool
82isRelease flags =
82isRelease flags =
83− case lookup (mkFlagName "release") (S.configConfigurationsFlags flags) of
83+ case lookupFlagAssignment (mkFlagName "release") (S.configConfigurationsFlags flags) of
84 Just True -> True
84 Just True -> True
85 Just False -> False
85 Just False -> False
86 Nothing -> False
86 Nothing -> False
88isFreestanding :: S.ConfigFlags -> Bool
88isFreestanding :: S.ConfigFlags -> Bool
89isFreestanding flags =
89isFreestanding flags =
90− case lookup (mkFlagName "freestanding") (S.configConfigurationsFlags flags) of
90+ case lookupFlagAssignment (mkFlagName "freestanding") (S.configConfigurationsFlags flags) of
91 Just True -> True
91 Just True -> True
92 Just False -> False
92 Just False -> False
93 Nothing -> False
93 Nothing -> False
@@ -97,6 +97,11 @@ mkFlagName :: String -> FlagName
97mkFlagName = FlagName
97mkFlagName = FlagName
100+#if !(MIN_VERSION_Cabal(2,2,0))
101+lookupFlagAssignment :: FlagName -> FlagAssignment -> Maybe Bool
102+lookupFlagAssignment = lookup
100-- -----------------------------------------------------------------------------
105-- -----------------------------------------------------------------------------
@@ -123,7 +128,7 @@ generateBuildFlagsModule verbosity dir libdirs = do
123 let buildFlagsModulePath = dir </> "BuildFlags_idris" Px.<.> "hs"
128 let buildFlagsModulePath = dir </> "BuildFlags_idris" Px.<.> "hs"
124 putStrLn $ "Generating " ++ buildFlagsModulePath
129 putStrLn $ "Generating " ++ buildFlagsModulePath
125 createDirectoryIfMissingVerbose verbosity True dir
130 createDirectoryIfMissingVerbose verbosity True dir
126− rewriteFile buildFlagsModulePath contents
131+ rewriteFileEx verbosity buildFlagsModulePath contents
127 where contents = "module BuildFlags_idris where \n\n" ++
132 where contents = "module BuildFlags_idris where \n\n" ++
128 "extraLibDirs :: [String]\n" ++
133 "extraLibDirs :: [String]\n" ++
129 "extraLibDirs = " ++ show libdirs
134 "extraLibDirs = " ++ show libdirs
@@ -136,7 +141,7 @@ generateVersionModule verbosity dir release = do
136 putStrLn $ "Generating " ++ versionModulePath ++
141 putStrLn $ "Generating " ++ versionModulePath ++
137 if release then " for release" else " for prerelease " ++ hash
142 if release then " for release" else " for prerelease " ++ hash
138 createDirectoryIfMissingVerbose verbosity True dir
143 createDirectoryIfMissingVerbose verbosity True dir
139− rewriteFile versionModulePath (versionModuleContents hash)
144+ rewriteFileEx verbosity versionModulePath (versionModuleContents hash)
141 where versionModuleContents h = "module Version_idris where\n\n" ++
146 where versionModuleContents h = "module Version_idris where\n\n" ++
142 "gitHash :: String\n" ++
147 "gitHash :: String\n" ++
@@ -150,7 +155,7 @@ generateTargetModule verbosity dir targetDir = do
150 let targetModulePath = dir </> "Target_idris" Px.<.> "hs"
155 let targetModulePath = dir </> "Target_idris" Px.<.> "hs"
151 putStrLn $ "Generating " ++ targetModulePath
156 putStrLn $ "Generating " ++ targetModulePath
152 createDirectoryIfMissingVerbose verbosity True dir
157 createDirectoryIfMissingVerbose verbosity True dir
153− rewriteFile targetModulePath (versionModuleContents absPath targetDir)
158+ rewriteFileEx verbosity targetModulePath (versionModuleContents absPath targetDir)
154 where versionModuleContents absolute td = "module Target_idris where\n\n" ++
159 where versionModuleContents absolute td = "module Target_idris where\n\n" ++
155 "import System.FilePath\n" ++
160 "import System.FilePath\n" ++
156 "import System.Environment\n" ++
161 "import System.Environment\n" ++
@@ -176,7 +181,7 @@ generateToolchainModule verbosity srcDir toolDir = do
176 "getToolchainDir = \"\""
181 "getToolchainDir = \"\""
177 let toolPath = srcDir </> "Tools_idris" Px.<.> "hs"
182 let toolPath = srcDir </> "Tools_idris" Px.<.> "hs"
178 createDirectoryIfMissingVerbose verbosity True srcDir
183 createDirectoryIfMissingVerbose verbosity True srcDir
179− rewriteFile toolPath (commonContent ++ toolContent)
184+ rewriteFileEx verbosity toolPath (commonContent ++ toolContent)
181idrisConfigure _ flags pkgdesc local = do
186idrisConfigure _ flags pkgdesc local = do
182 configureRTS
187 configureRTS
@@ -240,6 +245,11 @@ idrisPostSDist args flags desc lbi = do
240 (\e -> let e' = (e :: SomeException) in return ())
245 (\e -> let e' = (e :: SomeException) in return ())
241 postSDist simpleUserHooks args flags desc lbi
246 postSDist simpleUserHooks args flags desc lbi
248+#if !(MIN_VERSION_Cabal(2,0,0))
249+rewriteFileEx :: Verbosity -> FilePath -> String -> IO ()
250+rewriteFileEx _ = rewriteFile
243-- -----------------------------------------------------------------------------
253-- -----------------------------------------------------------------------------