1- import Distribution.Simple
1+ import Distribution.Simple hiding ( Version )
22import Distribution.Simple.PreProcess
33import Distribution.Simple.PreProcess.Unlit (unlit )
44import Distribution.Package
@@ -7,26 +7,27 @@ import Distribution.ModuleName (ModuleName)
77import qualified Distribution.ModuleName as ModuleName
88import 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 (.. ) )
1313import qualified Distribution.Simple.PackageIndex as PackageIndex
1414import Distribution.Simple.Compiler
1515 ( CompilerFlavor (.. ), Compiler (.. ), compilerFlavor , compilerVersion )
1616import Distribution.Simple.LocalBuildInfo (LocalBuildInfo (.. ))
17- import Distribution.Simple.BuildPaths (autogenModulesDir ,cppHeaderName )
17+ import Distribution.Types.ComponentLocalBuildInfo (ComponentLocalBuildInfo (.. ))
18+ import Distribution.Simple.BuildPaths (cppHeaderName )
1819import Distribution.Simple.Utils
1920 ( createDirectoryIfMissingVerbose , withUTF8FileContents , writeUTF8File
20- , die , setupMessage , intercalate , copyFileVerbose
21+ , setupMessage , intercalate , copyFileVerbose
2122 , findFileWithExtension , findFileWithExtension' )
2223import 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
2729import Distribution.System
2830 ( OS (OSX , Windows ), buildOS )
29- import Distribution.Version (Version (.. ))
3031import Distribution.Verbosity
3132import Distribution.Text
3233 ( display )
@@ -35,6 +36,7 @@ import Control.Monad (when, unless)
3536import Data.Maybe (fromMaybe )
3637import Data.List (nub )
3738import System.Directory (getModificationTime , doesFileExist )
39+ import System.Exit (die )
3840import System.Info (os , arch )
3941import System.FilePath (splitExtension , dropExtensions , (</>) , (<.>) ,
4042 takeDirectory , normalise , replaceExtension )
@@ -44,16 +46,16 @@ import Distribution.Simple.Program (simpleProgram)
4446
4547hsc2hsLdProgram = 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.
119121versionInt :: 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