import Distribution.PackageDescription
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.Program
import Distribution.Simple.Utils
import Distribution.Text
import System.Cmd
$ 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 ()
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
GHC.Unit
c-sources:
cbits/longlong.c
- extensions: CPP, MagicHash, ForeignFunctionInterface, UnliftedFFITypes
+ extensions: CPP, MagicHash, ForeignFunctionInterface, UnliftedFFITypes,
+ UnboxedTuples, EmptyDataDecls, NoImplicitPrelude
-- We need to set the package name to ghc-prim (without a version number)
-- as it's magic.
ghc-options: -package-name ghc-prim