Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / haskell-modules / patches / ghc-paths-nix.patch
blobb3c75a26a035e5ec19575a448bec8d1702bbe928
1 diff -Naur ghc-paths-0.1.0.9/GHC/Paths.hs ghc-paths-0.1.0.9-new/GHC/Paths.hs
2 --- ghc-paths-0.1.0.9/GHC/Paths.hs 2012-12-16 13:53:45.720148396 +0100
3 +++ ghc-paths-0.1.0.9-new/GHC/Paths.hs 2012-12-16 17:22:12.765576568 +0100
4 @@ -1,13 +1,35 @@
5 {-# LANGUAGE CPP #-}
6 +{-# LANGUAGE ScopedTypeVariables #-}
8 module GHC.Paths (
9 ghc, ghc_pkg, libdir, docdir
10 ) where
12 +import Control.Exception as E
13 +import Data.Maybe
14 +import System.Environment
15 +import System.IO.Unsafe
17 +-- Yes, there's lookupEnv now, but we want to be compatible
18 +-- with older GHCs.
19 +checkEnv :: String -> IO (Maybe String)
20 +checkEnv var = E.catch (fmap Just (getEnv var))
21 + (\ (e :: IOException) -> return Nothing)
23 +nixLibdir, nixDocdir, nixGhc, nixGhcPkg :: Maybe FilePath
24 +nixLibdir = unsafePerformIO (checkEnv "NIX_GHC_LIBDIR")
25 +nixDocdir = unsafePerformIO (checkEnv "NIX_GHC_DOCDIR")
26 +nixGhc = unsafePerformIO (checkEnv "NIX_GHC")
27 +nixGhcPkg = unsafePerformIO (checkEnv "NIX_GHCPKG")
28 +{-# NOINLINE nixLibdir #-}
29 +{-# NOINLINE nixDocdir #-}
30 +{-# NOINLINE nixGhc #-}
31 +{-# NOINLINE nixGhcPkg #-}
33 libdir, docdir, ghc, ghc_pkg :: FilePath
35 -libdir = GHC_PATHS_LIBDIR
36 -docdir = GHC_PATHS_DOCDIR
37 +libdir = fromMaybe GHC_PATHS_LIBDIR nixLibdir
38 +docdir = fromMaybe GHC_PATHS_DOCDIR nixDocdir
40 -ghc = GHC_PATHS_GHC
41 -ghc_pkg = GHC_PATHS_GHC_PKG
42 +ghc = fromMaybe GHC_PATHS_GHC nixGhc
43 +ghc_pkg = fromMaybe GHC_PATHS_GHC_PKG nixGhcPkg