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 /hadrian | |
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.
Diffstat (limited to 'hadrian')
-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 |