Hadrian: fix binary-dir with --docs=none
authorSylvain Henry <sylvain@haskus.fr>
Tue, 9 Apr 2019 14:16:47 +0000 (16:16 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Thu, 11 Apr 2019 23:51:24 +0000 (19:51 -0400)
Hadrian's "binary-dist" target must check that the "docs" directory
exists (it may not since we can disable docs generation).

hadrian/src/Rules/BinaryDist.hs

index b1b91bd..f0cb547 100644 (file)
@@ -121,7 +121,13 @@ bindistRules = do
         copyDirectory (ghcBuildDir -/- "lib") bindistFilesDir
         copyDirectory (rtsIncludeDir)         bindistFilesDir
         need ["docs"]
-        copyDirectory (root -/- "docs") bindistFilesDir
+        -- TODO: we should only embed the docs that have been generated
+        -- depending on the current settings (flavours' "ghcDocs" field and
+        -- "--docs=.." command-line flag)
+        -- Currently we embed the "docs" directory if it exists but it may
+        -- contain outdated or even invalid data.
+        whenM (doesDirectoryExist (root -/- "docs")) $ do
+          copyDirectory (root -/- "docs") bindistFilesDir
         when windows $ do
           copyDirectory (root -/- "mingw") bindistFilesDir
           -- we use that opportunity to delete the .stamp file that we use