Skip to content

Commit 1dc01b9

Browse files
authored
Merge pull request #77 from crogers1/ghc8
Uprev to GHC 8.10.7
2 parents 1eaffc9 + 264a378 commit 1dc01b9

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

compleat/Setup.hs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Distribution.Simple
1+
import Distribution.Simple hiding (Version)
22
import Distribution.Simple.PreProcess
33
import Distribution.Simple.PreProcess.Unlit (unlit)
44
import Distribution.Package
@@ -7,26 +7,27 @@ import Distribution.ModuleName (ModuleName)
77
import qualified Distribution.ModuleName as ModuleName
88
import Distribution.PackageDescription as PD
99
( PackageDescription(..), BuildInfo(..), Executable(..), withExe
10-
, Library(..), withLib, libModules )
11-
import qualified Distribution.InstalledPackageInfo as Installed
12-
( InstalledPackageInfo_(..) )
10+
, Library(..), withLib )
11+
import qualified Distribution.Types.InstalledPackageInfo as Installed
12+
( InstalledPackageInfo(..) )
1313
import qualified Distribution.Simple.PackageIndex as PackageIndex
1414
import Distribution.Simple.Compiler
1515
( CompilerFlavor(..), Compiler(..), compilerFlavor, compilerVersion )
1616
import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..))
17-
import Distribution.Simple.BuildPaths (autogenModulesDir,cppHeaderName)
17+
import Distribution.Types.ComponentLocalBuildInfo (ComponentLocalBuildInfo(..))
18+
import Distribution.Simple.BuildPaths (cppHeaderName)
1819
import Distribution.Simple.Utils
1920
( createDirectoryIfMissingVerbose, withUTF8FileContents, writeUTF8File
20-
, die, setupMessage, intercalate, copyFileVerbose
21+
, setupMessage, intercalate, copyFileVerbose
2122
, findFileWithExtension, findFileWithExtension' )
2223
import Distribution.Simple.Program
2324
( Program(..), ConfiguredProgram(..), lookupProgram, programPath
24-
, rawSystemProgramConf, rawSystemProgram
25+
, runDbProgram, runProgram
2526
, greencardProgram, cpphsProgram, hsc2hsProgram, c2hsProgram
2627
, happyProgram, alexProgram, haddockProgram, ghcProgram, gccProgram, ldProgram )
28+
import Distribution.Version
2729
import Distribution.System
2830
( OS(OSX, Windows), buildOS )
29-
import Distribution.Version (Version(..))
3031
import Distribution.Verbosity
3132
import Distribution.Text
3233
( display )
@@ -35,6 +36,7 @@ import Control.Monad (when, unless)
3536
import Data.Maybe (fromMaybe)
3637
import Data.List (nub)
3738
import System.Directory (getModificationTime, doesFileExist)
39+
import System.Exit (die)
3840
import System.Info (os, arch)
3941
import System.FilePath (splitExtension, dropExtensions, (</>), (<.>),
4042
takeDirectory, normalise, replaceExtension)
@@ -44,16 +46,16 @@ import Distribution.Simple.Program (simpleProgram)
4446

4547
hsc2hsLdProgram = simpleProgram "hsc2hs-ld"
4648

47-
my_ppHsc2hs :: BuildInfo -> LocalBuildInfo -> PreProcessor
48-
my_ppHsc2hs bi lbi = standardPP lbi hsc2hsProgram $
49+
my_ppHsc2hs :: BuildInfo -> LocalBuildInfo -> ComponentLocalBuildInfo -> PreProcessor
50+
my_ppHsc2hs bi lbi _ = standardPP lbi hsc2hsProgram $
4951
[ "--cc=" ++ programPath gccProg
5052
, "--ld=" ++ programPath ldProg ]
5153
-- [ "--cc=" ++ cc
5254
-- , "--ld=" ++ ld ]
5355

5456
-- Additional gcc options
55-
++ [ "--cflag=" ++ opt | opt <- programArgs gccProg ]
56-
++ [ "--lflag=" ++ opt | opt <- programArgs gccProg ]
57+
++ [ "--cflag=" ++ opt | opt <- programDefaultArgs gccProg ]
58+
++ [ "--lflag=" ++ opt | opt <- programDefaultArgs gccProg ]
5759

5860
-- OSX frameworks:
5961
++ [ what ++ "=-F" ++ opt
@@ -107,7 +109,7 @@ my_ppHsc2hs bi lbi = standardPP lbi hsc2hsProgram $
107109
-- OS X (it's ld is a tad stricter than gnu ld). Thus we remove the
108110
-- ldOptions for GHC's rts package:
109111
hackRtsPackage index =
110-
case PackageIndex.lookupPackageName index (PackageName "rts") of
112+
case PackageIndex.lookupPackageName index (mkPackageName "rts") of
111113
[(_, [rts])]
112114
-> PackageIndex.insert rts { Installed.ldOptions = [] } index
113115
_ -> error "No (or multiple) ghc rts package is registered!!"
@@ -117,10 +119,11 @@ my_ppHsc2hs bi lbi = standardPP lbi hsc2hsProgram $
117119
-- FIXME: this forces GHC's crazy 4.8.2 -> 408 convention on all the other
118120
-- compilers. Check if that's really what they want.
119121
versionInt :: Version -> String
120-
versionInt (Version { versionBranch = [] }) = "1"
121-
versionInt (Version { versionBranch = [n] }) = show n
122-
versionInt (Version { versionBranch = n1:n2:_ })
123-
= -- 6.8.x -> 608
122+
versionInt v = case versionNumbers v of
123+
[] -> "1"
124+
[n] -> show n
125+
n1:n2:_ ->
126+
-- 6.8.x -> 608
124127
-- 6.10.x -> 610
125128
let s1 = show n1
126129
s2 = show n2
@@ -134,7 +137,7 @@ standardPP lbi prog args =
134137
PreProcessor {
135138
platformIndependent = False,
136139
runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity ->
137-
do rawSystemProgramConf verbosity prog (withPrograms lbi)
140+
do runDbProgram verbosity prog (withPrograms lbi)
138141
(args ++ ["-o", outFile, inFile])
139142
-- XXX This is a nasty hack. GHC requires that hs-boot files
140143
-- be in the same place as the hs files, so if we put the hs

0 commit comments

Comments
 (0)