on master help sign in
Allow building on GHC 8.4.1
ff5322dRyan Scott
Setup.hs+19−9
@@ -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
66
66
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
73
73
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
80
80
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
87
87
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
98#endif
98#endif
99
99
100+#if !(MIN_VERSION_Cabal(2,2,0))
101+lookupFlagAssignment :: FlagName -> FlagAssignment -> Maybe Bool
102+lookupFlagAssignment = lookup
103+#endif
104+
100-- -----------------------------------------------------------------------------
105-- -----------------------------------------------------------------------------
101-- Clean
106-- Clean
102
107
@@ -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)
140
145
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)
180
185
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
242
247
248+#if !(MIN_VERSION_Cabal(2,0,0))
249+rewriteFileEx :: Verbosity -> FilePath -> String -> IO ()
250+rewriteFileEx _ = rewriteFile
251+#endif
252+
243-- -----------------------------------------------------------------------------
253-- -----------------------------------------------------------------------------
244-- Build
254-- Build
245
255
idris.cabal+2−2
@@ -100,7 +100,7 @@ source-repository head
100
100
101custom-setup
101custom-setup
102 setup-depends:
102 setup-depends:
103− Cabal >= 1.10 && <2.1,
103+ Cabal >= 1.10 && <2.3,
104 base >= 4 && <5,
104 base >= 4 && <5,
105 directory,
105 directory,
106 filepath,
106 filepath,
@@ -309,7 +309,7 @@ Library
309 , vector-binary-instances < 0.3
309 , vector-binary-instances < 0.3
310 , zip-archive > 0.2.3.5 && < 0.4
310 , zip-archive > 0.2.3.5 && < 0.4
311 , fsnotify >= 0.2 && < 2.2
311 , fsnotify >= 0.2 && < 2.2
312− , async < 2.2
312+ , async < 2.3
313
313
314 if !impl(ghc >= 8.0)
314 if !impl(ghc >= 8.0)
315 Build-Depends: semigroups == 0.18.*
315 Build-Depends: semigroups == 0.18.*