filling the gap b/w Cabal 1.10 and 1.14.

This commit is contained in:
Kazu Yamamoto 2012-02-15 15:57:43 +09:00
parent f353e89d11
commit 9daf5b36f0
2 changed files with 18 additions and 3 deletions

View File

@ -14,6 +14,7 @@ import Distribution.Verbosity (silent)
import ErrMsg
import GHC
import GHCApi
import qualified Gap
import Language.Haskell.Extension
import System.Directory
import System.FilePath
@ -34,8 +35,8 @@ initializeGHC opt fileName ghcOptions logging = withCabal <|> withoutCabal
(owdir,cdir,cfile) <- liftIO getDirs
binfo <- liftIO $ parseCabalFile cfile
let (idirs',exts',mlang) = extractBuildInfo binfo
exts = map addX exts'
lang = maybe "-XHaskell98" addX mlang
exts = map (addX . Gap.extensionToString) exts'
lang = maybe "-XHaskell98" (addX . show) mlang
gopts = ghcOptions ++ exts ++ [lang]
changeToCabalDirectory cdir
let idirs = case idirs' of
@ -44,7 +45,7 @@ initializeGHC opt fileName ghcOptions logging = withCabal <|> withoutCabal
file = ajustFileName fileName owdir cdir
logReader <- initSession opt gopts idirs logging
return (file,logReader)
addX x = "-X" ++ show x
addX = ("-X" ++)
----------------------------------------------------------------

14
Gap.hs
View File

@ -9,6 +9,7 @@ module Gap (
, fOptions
, toStringBuffer
, liftIO
, extensionToString
#if __GLASGOW_HASKELL__ >= 702
#else
, module Pretty
@ -21,6 +22,7 @@ import Control.Monad
import DynFlags
import FastString
import GHC
import Language.Haskell.Extension
import Outputable
import StringBuffer
@ -119,3 +121,15 @@ setCtx ms = do
where
lookupMod = lookupModule (ms_mod_name mos) Nothing >> return True
returnFalse = return False
----------------------------------------------------------------
-- This is Cabal, not GHC API
extensionToString :: Extension -> String
#if __GLASGOW_HASKELL__ == 704
extensionToString (EnableExtension ext) = show ext
extensionToString (DisableExtension ext) = show ext -- FIXME
extensionToString (UnknownExtension ext) = ext
#else
extensionToString = show
#endif