import Distribution.Simple
import Distribution.Simple.Configure
import Distribution.Simple.LocalBuildInfo
-import Distribution.Simple.Utils
import Distribution.Verbosity
import System.Environment
-import System.Info
main :: IO ()
main = do args <- getArgs
doit :: FilePath -> FilePath -> Verbosity -> IO ()
doit pref ghcpkg verbosity =
do let userHooks = simpleUserHooks
- copyFlags = CopyFlags {
- copyDest = NoCopyDest,
+ copyFlags = (emptyCopyFlags NoCopyDest) {
copyVerbose = verbosity
}
- registerFlags = RegisterFlags {
+ registerFlags = emptyRegisterFlags {
regUser = MaybeUserGlobal,
+ regVerbose = verbosity,
regGenScript = False,
regInPlace = False,
- regWithHcPkg = Just ghcpkg,
- regVerbose = verbosity
+ regWithHcPkg = Just ghcpkg
}
- pdFile <- defaultPackageDesc verbosity
- pd <- readPackageDescription verbosity pdFile
lbi <- getPersistBuildConfig
- let -- XXX These are almighty hacks, shadowing the base
- -- Setup.hs hacks
- extraExtraLibs = if (os == "mingw32") &&
- (pkgName (package pd) == "base")
- then ["wsock32", "msvcrt", "kernel32",
- "user32", "shell32"]
- else []
+ let pd = localPkgDescr lbi
+ -- XXX This is an almighty hack, shadowing the base
+ -- Setup.hs hack
mkLib filt = case library pd of
Just lib ->
let ems = filter filt $ exposedModules lib
- lib_bi = libBuildInfo lib
- lib_bi' = lib_bi {
- extraLibs = extraExtraLibs
- ++ extraLibs lib_bi
- }
in lib {
- exposedModules = ems,
- libBuildInfo = lib_bi'
+ exposedModules = ems
}
Nothing ->
error "Expected a library, but none found"