diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2020-03-30 20:04:16 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-04-14 23:30:24 -0400 |
commit | 7b41f21bbfa9e266ba6654b08c3f9fec549c8bca (patch) | |
tree | cca7905a0dcd9d37a526db2d1dd3d6e0b9698e13 | |
parent | 9853fc5e3556e733b56976b0a2fce9e82130a9ef (diff) | |
download | haskell-7b41f21bbfa9e266ba6654b08c3f9fec549c8bca.tar.gz |
Hadrian: Make -i paths absolute
The primary reason for this change is that ghcide does not work with
relative paths. It also matches what cabal and stack do, they always
pass absolute paths.
-rw-r--r-- | hadrian/src/Settings/Builders/Ghc.hs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/hadrian/src/Settings/Builders/Ghc.hs b/hadrian/src/Settings/Builders/Ghc.hs index 58f7132d9b..91e0f3d288 100644 --- a/hadrian/src/Settings/Builders/Ghc.hs +++ b/hadrian/src/Settings/Builders/Ghc.hs @@ -11,6 +11,7 @@ import Settings.Builders.Common import Settings.Warnings import qualified Context as Context import Rules.Libffi (libffiName) +import System.Directory ghcBuilderArgs :: Args ghcBuilderArgs = mconcat [ compileAndLinkHs, compileC, findHsDependencies @@ -215,18 +216,20 @@ packageGhcArgs = do includeGhcArgs :: Args includeGhcArgs = do pkg <- getPackage - path <- getBuildPath + path <- exprIO . makeAbsolute =<< getBuildPath context <- getContext srcDirs <- getContextData srcDirs - autogen <- expr $ autogenPath context + abSrcDirs <- exprIO $ mapM makeAbsolute [ (pkgPath pkg -/- dir) | dir <- srcDirs ] + autogen <- expr (autogenPath context) + cautogen <- exprIO (makeAbsolute autogen) stage <- getStage - libPath <- expr $ stageLibPath stage + libPath <- expr (stageLibPath stage) let cabalMacros = autogen -/- "cabal_macros.h" expr $ need [cabalMacros] mconcat [ arg "-i" , arg $ "-i" ++ path - , arg $ "-i" ++ autogen - , pure [ "-i" ++ pkgPath pkg -/- dir | dir <- srcDirs ] + , arg $ "-i" ++ cautogen + , pure [ "-i" ++ d | d <- abSrcDirs ] , cIncludeArgs , arg $ "-I" ++ libPath , arg $ "-optc-I" ++ libPath |