projects
/
ghc-prim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update source-repository in the .cabal file to point to the git repo
[ghc-prim.git]
/
Setup.hs
diff --git
a/Setup.hs
b/Setup.hs
index
aedd52b
..
5e736ab
100644
(file)
--- a/
Setup.hs
+++ b/
Setup.hs
@@
-5,15
+5,17
@@
module Main (main) where
import Control.Monad
import Data.List
import Control.Monad
import Data.List
+import Data.Maybe
import Distribution.PackageDescription
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
import Distribution.PackageDescription
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.Program
import Distribution.Simple.Utils
import Distribution.Simple.Utils
+import Distribution.Text
import System.Cmd
import System.FilePath
import System.Exit
import System.Directory
import System.Cmd
import System.FilePath
import System.Exit
import System.Directory
-import Control.Exception (try)
main :: IO ()
main = do let hooks = simpleUserHooks {
main :: IO ()
main = do let hooks = simpleUserHooks {
@@
-23,8
+25,9
@@
main = do let hooks = simpleUserHooks {
$ buildHook simpleUserHooks,
makefileHook = build_primitive_sources
$ makefileHook simpleUserHooks,
$ buildHook simpleUserHooks,
makefileHook = build_primitive_sources
$ makefileHook simpleUserHooks,
- haddockHook = build_primitive_sources
- $ haddockHook simpleUserHooks }
+ haddockHook = addPrimModuleForHaddock
+ $ build_primitive_sources
+ $ haddockHook simpleUserHooks }
defaultMainWithHooks hooks
type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()
defaultMainWithHooks hooks
type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()
@@
-38,11
+41,18
@@
addPrimModule f pd lbi uhs x =
lbi' = lbi { localPkgDescr = lpd }
f pd' lbi' uhs x
lbi' = lbi { localPkgDescr = lpd }
f pd' lbi' uhs x
+addPrimModuleForHaddock :: Hook a -> Hook a
+addPrimModuleForHaddock f pd lbi uhs x =
+ do let pc = withPrograms lbi
+ pc' = userSpecifyArgs "haddock" ["GHC/Prim.hs"] pc
+ lbi' = lbi { withPrograms = pc' }
+ f pd lbi' uhs x
+
addPrimModuleToPD :: PackageDescription -> PackageDescription
addPrimModuleToPD pd =
case library pd of
Just lib ->
addPrimModuleToPD :: PackageDescription -> PackageDescription
addPrimModuleToPD pd =
case library pd of
Just lib ->
- let ems = "GHC.Prim" : exposedModules lib
+ let ems = fromJust (simpleParse "GHC.Prim") : exposedModules lib
lib' = lib { exposedModules = ems }
in pd { library = Just lib' }
Nothing ->
lib' = lib { exposedModules = ems }
in pd { library = Just lib' }
Nothing ->
@@
-74,5
+84,7
@@
maybeUpdateFile source target = do
r <- rawSystem "cmp" ["-s" {-quiet-}, source, target]
case r of
ExitSuccess -> removeFile source
r <- rawSystem "cmp" ["-s" {-quiet-}, source, target]
case r of
ExitSuccess -> removeFile source
- ExitFailure _ -> do try (removeFile target); renameFile source target
+ ExitFailure _ -> do exists <- doesFileExist target
+ when exists $ removeFile target
+ renameFile source target