import Distribution.System
import Distribution.PackageDescription
import Distribution.Simple
import Distribution.Simple.Setup
import Control.Monad(when)
main :: IO ()
main = defaultMainWithHooks myHooks
myHooks :: UserHooks
myHooks
| buildOS == Windows = simpleUserHooks
| otherwise = simpleUserHooks {
confHook = \genericDescript flags -> do
warnIfNotTerminfo flags
confHook simpleUserHooks genericDescript flags
}
warnIfNotTerminfo flags = when (not (hasFlagSet flags (FlagName "terminfo")))
$ mapM_ putStrLn
[ "*** Warning: running on POSIX but not building the terminfo backend. ***"
, "You may need to install the terminfo package manually, e.g. with"
, "\"cabal install terminfo\"; or, use \"-fterminfo\" when configuring or"
, "installing this package."
,""
]
hasFlagSet :: ConfigFlags -> FlagName -> Bool
hasFlagSet cflags flag = Just True == lookup flag (configConfigurationsFlags cflags)