[commit: ghc] wip/nfs-locking: Fix file names for package names with slashes (e.g. Cabal/Cabal). (f124e23)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:23:12 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/f124e23635f6fa05edc945e4b0200acc0e57d8c2/ghc

>---------------------------------------------------------------

commit f124e23635f6fa05edc945e4b0200acc0e57d8c2
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Wed Jan 14 04:02:44 2015 +0000

    Fix file names for package names with slashes (e.g. Cabal/Cabal).


>---------------------------------------------------------------

f124e23635f6fa05edc945e4b0200acc0e57d8c2
 src/Package/Data.hs         | 3 ++-
 src/Package/Dependencies.hs | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Package/Data.hs b/src/Package/Data.hs
index d3b13a5..c5d3bd2 100644
--- a/src/Package/Data.hs
+++ b/src/Package/Data.hs
@@ -59,6 +59,7 @@ buildPackageData :: Package -> TodoItem -> Rules ()
 buildPackageData (Package name path _) (stage, dist, settings) =
     let pathDist  = path </> dist
         configure = path </> "configure"
+        cabal     = path </> takeBaseName name <.> "cabal"
         cabalArgs = arg ["configure", path, dist]
             -- this is a positional argument, hence:
             -- * if it is empty, we need to emit one empty string argument
@@ -91,7 +92,7 @@ buildPackageData (Package name path _) (stage, dist, settings) =
     -- , "build" </> "autogen" </> ("Paths_" ++ name) <.> "hs"
     ] &%> \_ -> do
         need ["shake/src/Package/Data.hs"]
-        need [path </> name <.> "cabal"]
+        need [cabal]
         when (doesFileExist $ configure <.> "ac") $ need [configure]
         terseRun GhcCabal cabalArgs
         when (registerPackage settings) $ terseRun (GhcPkg stage) ghcPkgArgs
diff --git a/src/Package/Dependencies.hs b/src/Package/Dependencies.hs
index e428371..1d3a8d2 100644
--- a/src/Package/Dependencies.hs
+++ b/src/Package/Dependencies.hs
@@ -8,7 +8,7 @@ buildPackageDependencies (Package name path _) (stage, dist, settings) =
     let buildDir = toStandard $ path </> dist </> "build"
         pkgData  = path </> dist </> "package-data.mk"
     in
-    (buildDir </> name <.> "m") %> \out -> do
+    (buildDir </> takeBaseName name <.> "m") %> \out -> do
         need ["shake/src/Package/Dependencies.hs"]
         terseRun (Ghc stage) $ arg "-M"
             <> packageArgs stage pkgData



More information about the ghc-commits mailing list