diff options
Diffstat (limited to 'hadrian/src/Settings')
-rw-r--r-- | hadrian/src/Settings/Builders/Ghc.hs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/hadrian/src/Settings/Builders/Ghc.hs b/hadrian/src/Settings/Builders/Ghc.hs index 2549a63e39..d498a6236c 100644 --- a/hadrian/src/Settings/Builders/Ghc.hs +++ b/hadrian/src/Settings/Builders/Ghc.hs @@ -13,6 +13,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,17 +216,19 @@ includeGhcArgs :: Args includeGhcArgs = do pkg <- getPackage path <- getBuildPath + cpath <- exprIO $ canonicalizePath path context <- getContext srcDirs <- getContextData srcDirs + abSrcDirs <- exprIO $ mapM canonicalizePath [pkgPath pkg -/- dir | dir <- srcDirs ] autogen <- expr $ autogenPath context stage <- getStage libPath <- expr $ stageLibPath stage let cabalMacros = autogen -/- "cabal_macros.h" expr $ need [cabalMacros] mconcat [ arg "-i" - , arg $ "-i" ++ path + , arg $ "-i" ++ cpath , arg $ "-i" ++ autogen - , pure [ "-i" ++ pkgPath pkg -/- dir | dir <- srcDirs ] + , pure [ "-i" ++ d | d <- abSrcDirs ] , cIncludeArgs , arg $ "-I" ++ libPath , arg $ "-optc-I" ++ libPath |