[commit: ghc] wip/nfs-locking: Add generator for ghc-pkg//Version.hs. (3021dbe)

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


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

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

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

commit 3021dbebbbc22acc67880f62a067417dcc9b486b
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Sat Dec 12 00:41:26 2015 +0000

    Add generator for ghc-pkg//Version.hs.


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

3021dbebbbc22acc67880f62a067417dcc9b486b
 src/Rules/Generate.hs | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/Rules/Generate.hs b/src/Rules/Generate.hs
index 6f45dbd..97fb81f 100644
--- a/src/Rules/Generate.hs
+++ b/src/Rules/Generate.hs
@@ -4,7 +4,7 @@ import Expression
 import GHC
 import Oracles
 import Rules.Actions
-import Rules.Resources
+import Rules.Resources (Resources)
 import Settings
 
 primopsSource :: FilePath
@@ -65,6 +65,12 @@ generatePackageCode _ target @ (PartialTarget stage pkg) =
             writeFileChanged file contents
             putBuild $ "| Successfully generated '" ++ file ++ "'."
 
+        priority 2.0 $
+            when (pkg == ghcPkg) $ buildPath -/- "Version.hs" %> \file -> do
+                contents <- interpretPartial target generateGhcPkgVersionHs
+                writeFileChanged file contents
+                putBuild $ "| Successfully generated '" ++ file ++ "'."
+
 quote :: String -> String
 quote s = "\"" ++ s ++ "\""
 
@@ -211,3 +217,15 @@ generatePlatformH = do
         , "#define TARGET_VENDOR " ++ quote targetVendor
         , ""
         , "#endif /* __PLATFORM_H__ */" ]
+
+generateGhcPkgVersionHs :: Expr String
+generateGhcPkgVersionHs = do
+    projectVersion <- getSetting ProjectVersion
+    targetOs       <- getSetting TargetOs
+    targetArch     <- getSetting TargetArch
+    return $ unlines
+        [ "module Version where"
+        , "version, targetOS, targetARCH :: String"
+        , "version    = " ++ quote projectVersion
+        , "targetOS   = " ++ quote targetOs
+        , "targetARCH = " ++ quote targetArch ]



More information about the ghc-commits mailing list