removing *.o file so that C-xC-s surely works.

This commit is contained in:
Kazu Yamamoto 2010-04-28 10:05:45 +09:00
parent 1e87b386a1
commit 34534e07ff
3 changed files with 26 additions and 10 deletions

View File

@ -16,11 +16,16 @@ import System.Process
checkSyntax :: Options -> String -> IO String
checkSyntax opt file = do
makeDirectory (outDir opt)
let outdir = outDir opt
outfile = outFile opt
objfile = objectFile outdir file
makeDirectory outdir
exist <- doesFileExist objfile
when exist $ removeFile objfile
#if __GLASGOW_HASKELL__ >= 611
(_,_,herr,_) <- runInteractiveProcess (ghc opt) ["--make","-Wall","-fno-warn-unused-do-bind",file,"-outputdir","dist/flymake","-o","dist/flymake/a.out","-i..","-i../..","-i../../..","-i../../../..","-i../../../../.."] Nothing Nothing
(_,_,herr,_) <- runInteractiveProcess (ghc opt) ["--make","-Wall","-fno-warn-unused-do-bind",file,"-outputdir",outdir,"-o",outfile,"-i..","-i../..","-i../../..","-i../../../..","-i../../../../.."] Nothing Nothing
#else
(_,_,herr,_) <- runInteractiveProcess (ghc opt) ["--make","-Wall",file,"-outputdir","dist/flymake","-o","dist/flymake/a.out","-i..","-i../..","-i../../..","-i../../../..","-i../../../../.."] Nothing Nothing
(_,_,herr,_) <- runInteractiveProcess (ghc opt) ["--make","-Wall",file,"-outputdir",outdir,"-o",outfile,"-i..","-i../..","-i../../..","-i../../../..","-i../../../../.."] Nothing Nothing
#endif
hSetBinaryMode herr False
refine <$> hGetContents herr
@ -51,3 +56,6 @@ makeDirectory dir = makeDirectoryRecur $ normalise dir
unless exist $ do
makeDirectoryRecur par
createDirectory cur
objectFile :: FilePath -> FilePath -> FilePath
objectFile dir hsfile = dir </> replaceExtension hsfile ".o"

View File

@ -28,7 +28,8 @@ defaultOptions = Options { convert = toPlain
, ghc = "ghc"
, ghci = "ghci"
, ghcPkg = "ghc-pkg"
, outDir = "dist/flymake"
, outDir = outputDir
, outFile = outputFile
}
argspec :: [OptDescr (Options -> Options)]

View File

@ -1,9 +1,16 @@
module Param where
data Options = Options { convert :: [String] -> String
data Options = Options {
convert :: [String] -> String
, ghc :: FilePath
, ghci :: FilePath
, ghcPkg :: FilePath
, outDir :: FilePath
, outFile :: FilePath
}
outputDir :: String
outputDir = "dist/flymake"
outputFile :: String
outputFile = "dist/flymake/a.out"