Fix cabal-helper ignoring --with-* flags

This commit is contained in:
Daniel Gröber 2015-03-08 20:18:36 +01:00
parent 1ac71364a9
commit 7d7f848afb
2 changed files with 15 additions and 12 deletions

View File

@ -95,15 +95,15 @@ parseCommandArgs opts argv
guessProgramPaths :: Options -> IO Options
guessProgramPaths opts = do
mghcPkg <- guessToolFromGhcPath "ghc-pkg" (ghcProgram opts)
let guessedGhcPkg = fromMaybe (ghcPkgProgram dopts) mghcPkg
return opts {
ghcPkgProgram = if guessGhcPkg then guessedGhcPkg else ghcPkgProgram dopts
}
if not (same ghcProgram opts dopts) && same ghcPkgProgram opts dopts
then do
mghcPkg <- guessToolFromGhcPath "ghc-pkg" (ghcProgram opts)
return opts {
ghcPkgProgram = fromMaybe (ghcPkgProgram opts) mghcPkg
}
else return opts
where
guessGhcPkg = nsame ghcProgram opts dopts && same ghcPkgProgram opts dopts
same f o o' = f o == f o'
nsame f o o' = f o /= f o'
dopts = defaultOptions
main :: IO ()

View File

@ -34,6 +34,7 @@ import Language.Haskell.GhcMod.Utils
import Language.Haskell.GhcMod.World
import Language.Haskell.GhcMod.PathsAndFiles
import System.FilePath
import System.Process
-- | Only package related GHC options, sufficient for things that don't need to
-- access home modules
@ -86,21 +87,23 @@ cabalHelper :: (MonadIO m, GmEnv m) => m CabalHelper
cabalHelper = withCabal $ do
Cradle {..} <- cradle
Options {..} <- options
let progArgs = [ "--with-ghc=" ++ ghcProgram
, "--with-ghc-pkg=" ++ ghcPkgProgram
, "--with-cabal=" ++ cabalProgram
]
let args = [ "entrypoints"
, "source-dirs"
, "ghc-options"
, "ghc-src-options"
, "ghc-pkg-options"
, "--with-ghc=" ++ ghcProgram
, "--with-ghc-pkg=" ++ ghcPkgProgram
, "--with-cabal=" ++ cabalProgram
]
] ++ progArgs
distdir = cradleRootDir </> "dist"
res <- liftIO $ do
exe <- findLibexecExe "cabal-helper-wrapper"
hexe <- readProcess exe [distdir, "print-exe"] ""
hexe <- readProcess exe ([distdir, "print-exe"] ++ progArgs) ""
cached cradleRootDir (cabalHelperCache hexe args) $ do
out <- readProcess exe (distdir:args) ""