Merge pull request #966 from Codas/ghc-7.10.1
Make yesod-bin build on 7.10.1
This commit is contained in:
commit
f0673d84ab
@ -1,6 +1,7 @@
|
|||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
{-# LANGUAGE CPP #-}
|
{-# LANGUAGE CPP #-}
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
{-# LANGUAGE ScopedTypeVariables #-}
|
||||||
|
{-# LANGUAGE FlexibleContexts #-}
|
||||||
module Build
|
module Build
|
||||||
( getDeps
|
( getDeps
|
||||||
, touchDeps
|
, touchDeps
|
||||||
|
|||||||
@ -248,7 +248,11 @@ devel opts passThroughArgs = withSocketsDo $ withManager $ \manager -> do
|
|||||||
-- outer loop re-reads the cabal file
|
-- outer loop re-reads the cabal file
|
||||||
mainOuterLoop develHsPath iappPort filesModified = do
|
mainOuterLoop develHsPath iappPort filesModified = do
|
||||||
ghcVer <- liftIO ghcVersion
|
ghcVer <- liftIO ghcVersion
|
||||||
|
#if MIN_VERSION_Cabal(1,20,0)
|
||||||
|
cabal <- liftIO $ D.tryFindPackageDesc "."
|
||||||
|
#else
|
||||||
cabal <- liftIO $ D.findPackageDesc "."
|
cabal <- liftIO $ D.findPackageDesc "."
|
||||||
|
#endif
|
||||||
gpd <- liftIO $ D.readPackageDescription D.normal cabal
|
gpd <- liftIO $ D.readPackageDescription D.normal cabal
|
||||||
ldar <- liftIO lookupLdAr
|
ldar <- liftIO lookupLdAr
|
||||||
(hsSourceDirs, _) <- liftIO $ checkCabalFile gpd
|
(hsSourceDirs, _) <- liftIO $ checkCabalFile gpd
|
||||||
|
|||||||
@ -87,15 +87,26 @@ getPackageArgs buildDir argv2 = do
|
|||||||
let pkgFlags = map convertPkgFlag (GHC.packageFlags dflags1)
|
let pkgFlags = map convertPkgFlag (GHC.packageFlags dflags1)
|
||||||
hideAll | gopt DF.Opt_HideAllPackages dflags1 = [ "-hide-all-packages"]
|
hideAll | gopt DF.Opt_HideAllPackages dflags1 = [ "-hide-all-packages"]
|
||||||
| otherwise = []
|
| otherwise = []
|
||||||
ownPkg = "-package-id" ++ Module.packageIdString (DF.thisPackage dflags1) ++ "-inplace"
|
ownPkg = packageString (DF.thisPackage dflags1)
|
||||||
return (extra dflags1 ++ hideAll ++ pkgFlags ++ [ownPkg])
|
return (extra dflags1 ++ hideAll ++ pkgFlags ++ [ownPkg])
|
||||||
where
|
where
|
||||||
|
#if __GLASGOW_HASKELL__ >= 710
|
||||||
|
convertPkgFlag (DF.ExposePackage (DF.PackageArg p) _) = "-package" ++ p
|
||||||
|
convertPkgFlag (DF.ExposePackage (DF.PackageIdArg p) _) = "-package-id" ++ p
|
||||||
|
convertPkgFlag (DF.ExposePackage (DF.PackageKeyArg p) _) = "-package-key" ++ p
|
||||||
|
#else
|
||||||
convertPkgFlag (DF.ExposePackage p) = "-package" ++ p
|
convertPkgFlag (DF.ExposePackage p) = "-package" ++ p
|
||||||
convertPkgFlag (DF.ExposePackageId p) = "-package-id" ++ p
|
convertPkgFlag (DF.ExposePackageId p) = "-package-id" ++ p
|
||||||
|
#endif
|
||||||
convertPkgFlag (DF.HidePackage p) = "-hide-package" ++ p
|
convertPkgFlag (DF.HidePackage p) = "-hide-package" ++ p
|
||||||
convertPkgFlag (DF.IgnorePackage p) = "-ignore-package" ++ p
|
convertPkgFlag (DF.IgnorePackage p) = "-ignore-package" ++ p
|
||||||
convertPkgFlag (DF.TrustPackage p) = "-trust" ++ p
|
convertPkgFlag (DF.TrustPackage p) = "-trust" ++ p
|
||||||
convertPkgFlag (DF.DistrustPackage p) ="-distrust" ++ p
|
convertPkgFlag (DF.DistrustPackage p) ="-distrust" ++ p
|
||||||
|
#if __GLASGOW_HASKELL__ >= 710
|
||||||
|
packageString flags = "-package-key" ++ Module.packageKeyString flags
|
||||||
|
#else
|
||||||
|
packageString flags = "-package-id" ++ Module.packageIdString flags ++ "-inplace"
|
||||||
|
#endif
|
||||||
#if __GLASGOW_HASKELL__ >= 705
|
#if __GLASGOW_HASKELL__ >= 705
|
||||||
extra df = inplaceConf ++ extra'
|
extra df = inplaceConf ++ extra'
|
||||||
where
|
where
|
||||||
@ -248,7 +259,13 @@ parseModeFlags args = do
|
|||||||
Nothing -> doMakeMode
|
Nothing -> doMakeMode
|
||||||
Just (m, _) -> m
|
Just (m, _) -> m
|
||||||
errs = errs1 ++ map (mkGeneralLocated "on the commandline") errs2
|
errs = errs1 ++ map (mkGeneralLocated "on the commandline") errs2
|
||||||
when (not (null errs)) $ throwGhcException $ errorsToGhcException errs
|
#if __GLASGOW_HASKELL__ >= 710
|
||||||
|
errorsToGhcException' = errorsToGhcException . map (\(GHC.L _ e) -> ("on the commandline", e))
|
||||||
|
#else
|
||||||
|
errorsToGhcException' = errorsToGhcException
|
||||||
|
#endif
|
||||||
|
|
||||||
|
when (not (null errs)) $ throwGhcException $ errorsToGhcException' errs
|
||||||
return (mode, flags' ++ leftover, warns)
|
return (mode, flags' ++ leftover, warns)
|
||||||
|
|
||||||
type ModeM = CmdLineP (Maybe (Mode, String), [String], [Located String])
|
type ModeM = CmdLineP (Maybe (Mode, String), [String], [Located String])
|
||||||
@ -258,16 +275,16 @@ type ModeM = CmdLineP (Maybe (Mode, String), [String], [Located String])
|
|||||||
mode_flags :: [Flag ModeM]
|
mode_flags :: [Flag ModeM]
|
||||||
mode_flags =
|
mode_flags =
|
||||||
[ ------- help / version ----------------------------------------------
|
[ ------- help / version ----------------------------------------------
|
||||||
Flag "?" (PassFlag (setMode showGhcUsageMode))
|
mkFlag "?" (PassFlag (setMode showGhcUsageMode))
|
||||||
, Flag "-help" (PassFlag (setMode showGhcUsageMode))
|
, mkFlag "-help" (PassFlag (setMode showGhcUsageMode))
|
||||||
, Flag "V" (PassFlag (setMode showVersionMode))
|
, mkFlag "V" (PassFlag (setMode showVersionMode))
|
||||||
, Flag "-version" (PassFlag (setMode showVersionMode))
|
, mkFlag "-version" (PassFlag (setMode showVersionMode))
|
||||||
, Flag "-numeric-version" (PassFlag (setMode showNumVersionMode))
|
, mkFlag "-numeric-version" (PassFlag (setMode showNumVersionMode))
|
||||||
, Flag "-info" (PassFlag (setMode showInfoMode))
|
, mkFlag "-info" (PassFlag (setMode showInfoMode))
|
||||||
, Flag "-supported-languages" (PassFlag (setMode showSupportedExtensionsMode))
|
, mkFlag "-supported-languages" (PassFlag (setMode showSupportedExtensionsMode))
|
||||||
, Flag "-supported-extensions" (PassFlag (setMode showSupportedExtensionsMode))
|
, mkFlag "-supported-extensions" (PassFlag (setMode showSupportedExtensionsMode))
|
||||||
] ++
|
] ++
|
||||||
[ Flag k' (PassFlag (setMode (printSetting k)))
|
[ mkFlag k' (PassFlag (setMode (printSetting k)))
|
||||||
| k <- ["Project version",
|
| k <- ["Project version",
|
||||||
"Booter version",
|
"Booter version",
|
||||||
"Stage",
|
"Stage",
|
||||||
@ -293,26 +310,31 @@ mode_flags =
|
|||||||
replaceSpace c = c
|
replaceSpace c = c
|
||||||
] ++
|
] ++
|
||||||
------- interfaces ----------------------------------------------------
|
------- interfaces ----------------------------------------------------
|
||||||
[ Flag "-show-iface" (HasArg (\f -> setMode (showInterfaceMode f)
|
[ mkFlag "-show-iface" (HasArg (\f -> setMode (showInterfaceMode f)
|
||||||
"--show-iface"))
|
"--show-iface"))
|
||||||
|
|
||||||
------- primary modes ------------------------------------------------
|
------- primary modes ------------------------------------------------
|
||||||
, Flag "c" (PassFlag (\f -> do setMode (stopBeforeMode StopLn) f
|
, mkFlag "c" (PassFlag (\f -> do setMode (stopBeforeMode StopLn) f
|
||||||
addFlag "-no-link" f))
|
addFlag "-no-link" f))
|
||||||
, Flag "M" (PassFlag (setMode doMkDependHSMode))
|
, mkFlag "M" (PassFlag (setMode doMkDependHSMode))
|
||||||
, Flag "E" (PassFlag (setMode (stopBeforeMode anyHsc)))
|
, mkFlag "E" (PassFlag (setMode (stopBeforeMode anyHsc)))
|
||||||
, Flag "C" (PassFlag (\f -> do setMode (stopBeforeMode HCc) f
|
, mkFlag "C" (PassFlag (\f -> do setMode (stopBeforeMode HCc) f
|
||||||
addFlag "-fvia-C" f))
|
addFlag "-fvia-C" f))
|
||||||
#if MIN_VERSION_ghc(7,8,3)
|
#if MIN_VERSION_ghc(7,8,3)
|
||||||
, Flag "S" (PassFlag (setMode (stopBeforeMode (As True))))
|
, mkFlag "S" (PassFlag (setMode (stopBeforeMode (As True))))
|
||||||
#else
|
#else
|
||||||
, Flag "S" (PassFlag (setMode (stopBeforeMode As)))
|
, mkFlag "S" (PassFlag (setMode (stopBeforeMode As)))
|
||||||
#endif
|
#endif
|
||||||
, Flag "-make" (PassFlag (setMode doMakeMode))
|
, mkFlag "-make" (PassFlag (setMode doMakeMode))
|
||||||
, Flag "-interactive" (PassFlag (setMode doInteractiveMode))
|
, mkFlag "-interactive" (PassFlag (setMode doInteractiveMode))
|
||||||
, Flag "-abi-hash" (PassFlag (setMode doAbiHashMode))
|
, mkFlag "-abi-hash" (PassFlag (setMode doAbiHashMode))
|
||||||
, Flag "e" (SepArg (\s -> setMode (doEvalMode s) "-e"))
|
, mkFlag "e" (SepArg (\s -> setMode (doEvalMode s) "-e"))
|
||||||
]
|
]
|
||||||
|
#if MIN_VERSION_ghc(7,10,1)
|
||||||
|
where mkFlag fName fOptKind = Flag fName fOptKind AllModes
|
||||||
|
#else
|
||||||
|
where mkFlag fName fOptKind = Flag fName fOptKind
|
||||||
|
#endif
|
||||||
|
|
||||||
setMode :: Mode -> String -> EwM ModeM ()
|
setMode :: Mode -> String -> EwM ModeM ()
|
||||||
setMode newMode newFlag = liftEwM $ do
|
setMode newMode newFlag = liftEwM $ do
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
{-# LANGUAGE CPP #-}
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
module HsFile (mkHsFile) where
|
module HsFile (mkHsFile) where
|
||||||
import Text.ProjectTemplate (createTemplate)
|
import Text.ProjectTemplate (createTemplate)
|
||||||
@ -5,7 +6,11 @@ import Data.Conduit
|
|||||||
( ($$), (=$), ConduitM, awaitForever, yield, Source )
|
( ($$), (=$), ConduitM, awaitForever, yield, Source )
|
||||||
import Control.Monad.Trans.Resource (ResourceT, runResourceT)
|
import Control.Monad.Trans.Resource (ResourceT, runResourceT)
|
||||||
import qualified Data.Conduit.List as CL
|
import qualified Data.Conduit.List as CL
|
||||||
|
#if __GLASGOW_HASKELL__ >= 710
|
||||||
|
import Prelude hiding (FilePath, traverse)
|
||||||
|
#else
|
||||||
import Prelude hiding (FilePath)
|
import Prelude hiding (FilePath)
|
||||||
|
#endif
|
||||||
import Filesystem.Path ( FilePath )
|
import Filesystem.Path ( FilePath )
|
||||||
import Filesystem.Path.CurrentOS ( encodeString )
|
import Filesystem.Path.CurrentOS ( encodeString )
|
||||||
import qualified Filesystem as F
|
import qualified Filesystem as F
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user