Support autogen paths of new Cabal
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Thu, 14 Jul 2016 00:28:02 +0000 (01:28 +0100)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Thu, 14 Jul 2016 00:28:02 +0000 (01:28 +0100)
See #269.

src/Rules/Data.hs

index 2da6f86..034b2f4 100644 (file)
@@ -38,12 +38,19 @@ buildPackageData context@Context {..} = do
 
     -- TODO: Get rid of this, see #113.
     dataFile %> \mk -> do
+        -- TODO: This is a hack. Add a proper support for autogen directory
+        -- structure of the new Cabal (probably only after #113).
+        let oldBuild
+                | isLibrary package = oldPath -/- "build"
+                | package == ghc    = oldPath -/- "build/ghc"
+                | package == hpcBin = oldPath -/- "build/hpc"
+                | otherwise         = oldPath -/- "build" -/- pkgNameString package
         copyFile inTreeMk mk
-        autogenFiles <- getDirectoryFiles (oldPath -/- "build") ["autogen/*"]
+        autogenFiles <- getDirectoryFiles oldBuild ["autogen/*"]
         createDirectory $ buildPath context -/- "autogen"
         forM_ autogenFiles $ \file' -> do
             let file = unifyPath file'
-            copyFile (oldPath -/- "build" -/- file) (buildPath context -/- file)
+            copyFile (oldBuild -/- file) (buildPath context -/- file)
         let haddockPrologue = "haddock-prologue.txt"
         copyFile (oldPath -/- haddockPrologue) (buildPath context -/- haddockPrologue)
         postProcessPackageData context mk