diff options
-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 |