diff options
author | Ian Lynagh <igloo@earth.li> | 2008-06-29 21:16:33 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2008-06-29 21:16:33 +0000 |
commit | cb906a124e36cb5054784a5bc44eb9d099d20709 (patch) | |
tree | 3f253e46672708722f51373121edcd4f768517ad /compiler/main/PackageConfig.hs | |
parent | e47ddd4edb7e57b5a93a5fdd00ce18809010ee33 (diff) | |
download | haskell-cb906a124e36cb5054784a5bc44eb9d099d20709.tar.gz |
Follow Cabal changes
Diffstat (limited to 'compiler/main/PackageConfig.hs')
-rw-r--r-- | compiler/main/PackageConfig.hs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/compiler/main/PackageConfig.hs b/compiler/main/PackageConfig.hs index d5569c4a85..a93a7e5276 100644 --- a/compiler/main/PackageConfig.hs +++ b/compiler/main/PackageConfig.hs @@ -12,22 +12,26 @@ module PackageConfig ( Version(..), PackageIdentifier(..), defaultPackageConfig, + packageConfigToInstalledPackageInfo, + installedPackageInfoToPackageConfig, ) where #include "HsVersions.h" +import Data.Maybe import Module import Distribution.InstalledPackageInfo +import Distribution.ModuleName import Distribution.Package import Distribution.Text import Distribution.Version -import Distribution.Compat.ReadP ( readP_to_S ) +import Distribution.Compat.ReadP -- ----------------------------------------------------------------------------- -- Our PackageConfig type is just InstalledPackageInfo from Cabal. Later we -- might need to extend it with some GHC-specific stuff, but for now it's fine. -type PackageConfig = InstalledPackageInfo_ ModuleName +type PackageConfig = InstalledPackageInfo_ Module.ModuleName defaultPackageConfig :: PackageConfig defaultPackageConfig = emptyInstalledPackageInfo @@ -57,3 +61,21 @@ unpackPackageId p [] -> Nothing (pid:_) -> Just pid where str = packageIdString p + +packageConfigToInstalledPackageInfo :: PackageConfig -> InstalledPackageInfo +packageConfigToInstalledPackageInfo + (pkgconf@(InstalledPackageInfo { exposedModules = e, + hiddenModules = h })) = + pkgconf{ exposedModules = map convert e, + hiddenModules = map convert h } + where convert :: Module.ModuleName -> Distribution.ModuleName.ModuleName + convert = fromJust . simpleParse . moduleNameString + +installedPackageInfoToPackageConfig :: InstalledPackageInfo -> PackageConfig +installedPackageInfoToPackageConfig + (pkgconf@(InstalledPackageInfo { exposedModules = e, + hiddenModules = h })) = + pkgconf{ exposedModules = map convert e, + hiddenModules = map convert h } + where convert :: Distribution.ModuleName.ModuleName -> Module.ModuleName + convert = mkModuleName . display |