diff --git a/Language/Haskell/GhcMod/Utils.hs b/Language/Haskell/GhcMod/Utils.hs index 15782b0..19a0eba 100644 --- a/Language/Haskell/GhcMod/Utils.hs +++ b/Language/Haskell/GhcMod/Utils.hs @@ -40,7 +40,7 @@ import System.IO.Temp (createTempDirectory) import System.Process (readProcess) import Text.Printf -import Paths_ghc_mod (getLibexecDir) +import Paths_ghc_mod (getLibexecDir, getBinDir) import Utils import Prelude @@ -84,7 +84,11 @@ ghcModExecutable = do dir <- takeDirectory <$> getExecutablePath' return $ (if dir == "." then "" else dir) "ghc-mod" #else -ghcModExecutable = fmap ( "dist/build/ghc-mod/ghc-mod") getCurrentDirectory +ghcModExecutable = do + gpp <- lookupEnv "STACK_EXE" + case gpp of + Just _ -> fmap ( "ghc-mod") getBinDir + _ -> fmap ( "dist/build/ghc-mod/ghc-mod") getCurrentDirectory #endif getExecutablePath' :: IO FilePath diff --git a/test/Main.hs b/test/Main.hs index 2e9f558..3558f56 100644 --- a/test/Main.hs +++ b/test/Main.hs @@ -7,11 +7,15 @@ import Control.Monad (void) import Data.List import Language.Haskell.GhcMod (debugInfo) import System.Process +import System.Environment import Test.Hspec import TestUtils main :: IO () main = do +#if __GLASGOW_HASKELL__ >= 708 + unsetEnv "GHC_PACKAGE_PATH" +#endif let sandboxes = [ "test/data/cabal-project" , "test/data/check-packageid" , "test/data/duplicate-pkgver/"