summaryrefslogtreecommitdiff
path: root/compiler/main/PackageConfig.hs
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2008-06-29 21:16:33 +0000
committerIan Lynagh <igloo@earth.li>2008-06-29 21:16:33 +0000
commitcb906a124e36cb5054784a5bc44eb9d099d20709 (patch)
tree3f253e46672708722f51373121edcd4f768517ad /compiler/main/PackageConfig.hs
parente47ddd4edb7e57b5a93a5fdd00ce18809010ee33 (diff)
downloadhaskell-cb906a124e36cb5054784a5bc44eb9d099d20709.tar.gz
Follow Cabal changes
Diffstat (limited to 'compiler/main/PackageConfig.hs')
-rw-r--r--compiler/main/PackageConfig.hs26
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