diff --git a/Cabal/Distribution/Simple/Compiler.hs b/Cabal/Distribution/Simple/Compiler.hs index 9c51208c832521d8962f7cdf3a077a9775428a4f..fd229c4092c87faea3234fcc07303b4ad23d2c2b 100644 --- a/Cabal/Distribution/Simple/Compiler.hs +++ b/Cabal/Distribution/Simple/Compiler.hs @@ -79,13 +79,19 @@ import Language.Haskell.Extension (Language(Haskell98), Extension) import Control.Monad (liftM) import Data.List (nub) +import qualified Data.Map as M (Map) import Data.Maybe (catMaybes, isNothing) import System.Directory (canonicalizePath) data Compiler = Compiler { compilerId :: CompilerId, + -- ^ Compiler flavour and version. compilerLanguages :: [(Language, Flag)], - compilerExtensions :: [(Extension, Flag)] + -- ^ Supported language standards. + compilerExtensions :: [(Extension, Flag)], + -- ^ Supported extensions. + compilerProperties :: M.Map String String + -- ^ A key-value map for properties not covered by the above fields. } deriving (Show, Read) diff --git a/Cabal/Distribution/Simple/GHC.hs b/Cabal/Distribution/Simple/GHC.hs index c7ea6331e4f2dcf305e43e9504335813ee6b67ed..362d9064da0fd639033a3e26d8d28f0b419bfddb 100644 --- a/Cabal/Distribution/Simple/GHC.hs +++ b/Cabal/Distribution/Simple/GHC.hs @@ -129,6 +129,7 @@ import Language.Haskell.Extension (Language(..), Extension(..) import Control.Monad ( unless, when ) import Data.Char ( isSpace ) import Data.List +import qualified Data.Map as M ( empty ) import Data.Maybe ( catMaybes, fromMaybe ) import Data.Monoid ( Monoid(..) ) import System.Directory @@ -184,7 +185,8 @@ configure verbosity hcPath hcPkgPath conf0 = do let comp = Compiler { compilerId = CompilerId GHC ghcVersion, compilerLanguages = languages, - compilerExtensions = extensions + compilerExtensions = extensions, + compilerProperties = M.empty } compPlatform = targetPlatform ghcInfo conf4 = configureToolchain ghcProg ghcInfo conf3 -- configure gcc and ld diff --git a/Cabal/Distribution/Simple/Hugs.hs b/Cabal/Distribution/Simple/Hugs.hs index 2afcff029acd07c0ca30b387df5343413fef6a10..f63bfab3524e15e356f623bad62df7a6653e8fa6 100644 --- a/Cabal/Distribution/Simple/Hugs.hs +++ b/Cabal/Distribution/Simple/Hugs.hs @@ -108,6 +108,7 @@ import Distribution.ParseUtils import Distribution.Verbosity import Data.Char ( isSpace ) +import qualified Data.Map as M ( empty ) import Data.Maybe ( mapMaybe, catMaybes ) import Data.Monoid ( Monoid(..) ) import Control.Monad ( unless, when, filterM ) @@ -138,7 +139,8 @@ configure verbosity hcPath _hcPkgPath conf = do let comp = Compiler { compilerId = CompilerId Hugs version, compilerLanguages = hugsLanguages, - compilerExtensions = hugsLanguageExtensions + compilerExtensions = hugsLanguageExtensions, + compilerProperties = M.empty } compPlatform = Nothing return (comp, compPlatform, conf'') diff --git a/Cabal/Distribution/Simple/JHC.hs b/Cabal/Distribution/Simple/JHC.hs index f09a6e4f24ec9ec292cfb3b6f74a6fce801bc976..da978be1e0bc9f6ddb57d62acb167a470ebf0640 100644 --- a/Cabal/Distribution/Simple/JHC.hs +++ b/Cabal/Distribution/Simple/JHC.hs @@ -88,6 +88,7 @@ import Distribution.System ( Platform ) import Data.List ( nub ) import Data.Char ( isSpace ) +import qualified Data.Map as M ( empty ) import Data.Maybe ( fromMaybe ) import qualified Data.ByteString.Lazy.Char8 as BS.Char8 @@ -108,7 +109,8 @@ configure verbosity hcPath _hcPkgPath conf = do comp = Compiler { compilerId = CompilerId JHC version, compilerLanguages = jhcLanguages, - compilerExtensions = jhcLanguageExtensions + compilerExtensions = jhcLanguageExtensions, + compilerProperties = M.empty } compPlatform = Nothing return (comp, compPlatform, conf') diff --git a/Cabal/Distribution/Simple/LHC.hs b/Cabal/Distribution/Simple/LHC.hs index a0420de7096ae37a18316dcc8e76114bcf887460..f3ac52930f06b8daf453b29c386c9ccbeebe7aba 100644 --- a/Cabal/Distribution/Simple/LHC.hs +++ b/Cabal/Distribution/Simple/LHC.hs @@ -116,6 +116,7 @@ import Language.Haskell.Extension import Control.Monad ( unless, when ) import Data.List +import qualified Data.Map as M ( empty ) import Data.Maybe ( catMaybes ) import Data.Monoid ( Monoid(..) ) import System.Directory ( removeFile, renameFile, @@ -155,7 +156,8 @@ configure verbosity hcPath hcPkgPath conf = do let comp = Compiler { compilerId = CompilerId LHC lhcVersion, compilerLanguages = languages, - compilerExtensions = extensions + compilerExtensions = extensions, + compilerProperties = M.empty } conf''' = configureToolchain lhcProg conf'' -- configure gcc and ld compPlatform = Nothing diff --git a/Cabal/Distribution/Simple/NHC.hs b/Cabal/Distribution/Simple/NHC.hs index 0bf55a38ad0c9f7f0308b7e89da20c03968c33ed..93a6c8a322c0743013b05d6fa7239e9737bad2ab 100644 --- a/Cabal/Distribution/Simple/NHC.hs +++ b/Cabal/Distribution/Simple/NHC.hs @@ -98,11 +98,12 @@ import System.Directory ( doesFileExist, doesDirectoryExist, getDirectoryContents , removeFile, getHomeDirectory ) -import Data.Char ( toLower ) -import Data.List ( nub ) -import Data.Maybe ( catMaybes ) -import Data.Monoid ( Monoid(..) ) -import Control.Monad ( when, unless ) +import Data.Char ( toLower ) +import Data.List ( nub ) +import Data.Maybe ( catMaybes ) +import qualified Data.Map as M ( empty ) +import Data.Monoid ( Monoid(..) ) +import Control.Monad ( when, unless ) import Distribution.Compat.Exception import Distribution.System ( Platform ) @@ -133,7 +134,8 @@ configure verbosity hcPath _hcPkgPath conf = do let comp = Compiler { compilerId = CompilerId NHC nhcVersion, compilerLanguages = nhcLanguages, - compilerExtensions = nhcLanguageExtensions + compilerExtensions = nhcLanguageExtensions, + compilerProperties = M.empty } compPlatform = Nothing return (comp, compPlatform, conf'''') diff --git a/Cabal/Distribution/Simple/UHC.hs b/Cabal/Distribution/Simple/UHC.hs index 3589937f8637adb270bfa7ad202553ee3f503516..987dcf5f6475c7d5e578cf31ca62f4e0da45bcf0 100644 --- a/Cabal/Distribution/Simple/UHC.hs +++ b/Cabal/Distribution/Simple/UHC.hs @@ -53,6 +53,7 @@ module Distribution.Simple.UHC ( import Control.Monad import Data.List +import qualified Data.Map as M ( empty ) import Distribution.Compat.ReadP import Distribution.InstalledPackageInfo import Distribution.Package @@ -86,7 +87,8 @@ configure verbosity hcPath _hcPkgPath conf = do let comp = Compiler { compilerId = CompilerId UHC uhcVersion, compilerLanguages = uhcLanguages, - compilerExtensions = uhcLanguageExtensions + compilerExtensions = uhcLanguageExtensions, + compilerProperties = M.empty } compPlatform = Nothing return (comp, compPlatform, conf')