import Distribution.Simple.Build (writeAutogenFiles)
import Distribution.Simple.Register (writeInstalledConfig)
import Distribution.Simple.PackageIndex
+import Distribution.System
import Distribution.Text
import Distribution.Verbosity
import qualified Distribution.InstalledPackageInfo as Installed
defaultMainWithHooksArgs hooks ("register" : "--builddir" : distDir : args)
where
hooks = userHooks {
- copyHook = modHook (copyHook userHooks),
+ copyHook = noGhcPrimHook (modHook (copyHook userHooks)),
regHook = modHook (regHook userHooks)
}
- modHook f pd lbi us flags
- = let
- pd'
+ noGhcPrimHook f pd lbi us flags
+ = let pd'
| packageName pd == PackageName "ghc-prim" =
case library pd of
Just lib ->
Nothing ->
error "Expected a library, but none found"
| otherwise = pd
- idts = installDirTemplates lbi
+ in f pd' lbi us flags
+ modHook f pd lbi us flags
+ = let idts = installDirTemplates lbi
idts' = idts { prefix = toPathTemplate myPrefix,
libdir = toPathTemplate myLibdir,
libsubdir = toPathTemplate "$pkgid",
installDirTemplates = idts',
withPrograms = progs'
}
- in f pd' lbi' us flags
+ in f pd lbi' us flags
generate :: [String] -> FilePath -> FilePath -> IO ()
generate config_args distdir directory
-- Sigh, haskeline proper uses stuff in Setup.hs to handle whether
-- or not -liconv is used. We don't use Setup.hs, so we replicate
-- what it does here. We should do this better somehow.
- when (display (pkgName (package pd0)) == "haskeline") $
+ when ((display (pkgName (package pd0)) == "haskeline") &&
+ (buildOS /= Windows)) $
case library pd0 of
Nothing -> fail "Can't happen: No haskeline library"
Just lib -> do
maybeSetLibiconv verbosity (libBuildInfo lib) lbi
hooked_bi <-
- if (buildType pd0 == Just Configure)
+ if (buildType pd0 == Just Configure) || (buildType pd0 == Just Custom)
then do
maybe_infoFile <- defaultHookedPackageDesc
case maybe_infoFile of