diff --git a/Cabal/Distribution/Package.hs b/Cabal/Distribution/Package.hs index cbdbf9e6f6c8a59a10e32de3dd5548c5227e1c6f..cb06e41bcce5626425529c3e057024411e39aae7 100644 --- a/Cabal/Distribution/Package.hs +++ b/Cabal/Distribution/Package.hs @@ -24,9 +24,10 @@ module Distribution.Package ( -- * Installed package identifiers InstalledPackageId(..), - -- * Package keys (used for linker symbols) + -- * Package keys (used for linker symbols and library name) PackageKey(..), mkPackageKey, + packageKeyLibraryName, -- * Package source dependencies Dependency(..), @@ -275,6 +276,10 @@ packageKeyHash :: PackageKey -> String packageKeyHash (PackageKey _ w1 w2) = toBase62 w1 ++ toBase62 w2 packageKeyHash (OldPackageKey pid) = display pid +packageKeyLibraryName :: PackageId -> PackageKey -> String +packageKeyLibraryName pid (PackageKey _ w1 w2) = display pid ++ "-" ++ toBase62 w1 ++ toBase62 w2 +packageKeyLibraryName _ (OldPackageKey pid) = display pid + instance Text PackageKey where disp (PackageKey prefix w1 w2) = Disp.text prefix <> Disp.char '_' <> Disp.text (toBase62 w1) <> Disp.text (toBase62 w2) diff --git a/Cabal/Distribution/Simple/Configure.hs b/Cabal/Distribution/Simple/Configure.hs index 191f2ce301c5ed7dce0b540cd05fa96a8e86498f..d410e67d0adb4878889bf04995dbea4bf88ade9f 100644 --- a/Cabal/Distribution/Simple/Configure.hs +++ b/Cabal/Distribution/Simple/Configure.hs @@ -61,7 +61,7 @@ import Distribution.Package , packageName, packageVersion, Package(..) , Dependency(Dependency), simplifyDependency , InstalledPackageId(..), thisPackageVersion - , mkPackageKey, PackageKey(..) ) + , mkPackageKey, PackageKey(..), packageKeyLibraryName ) import qualified Distribution.InstalledPackageInfo as Installed import Distribution.InstalledPackageInfo (InstalledPackageInfo, emptyInstalledPackageInfo) import qualified Distribution.Simple.PackageIndex as PackageIndex @@ -1286,7 +1286,7 @@ mkComponentsLocalBuildInfo installedPackages pkg_descr externalPkgDeps lib return LibComponentLocalBuildInfo { componentPackageDeps = cpds, - componentLibraries = [LibraryName ("HS" ++ display pkg_key)], + componentLibraries = [ LibraryName ("HS" ++ packageKeyLibraryName (package pkg_descr) pkg_key) ], componentPackageRenaming = cprns, componentExposedModules = exports ++ reexports ++ esigs }