diff options
Diffstat (limited to 'hadrian/src')
-rw-r--r-- | hadrian/src/Oracles/Setting.hs | 2 | ||||
-rw-r--r-- | hadrian/src/Settings/Builders/Common.hs | 13 | ||||
-rw-r--r-- | hadrian/src/Settings/Packages.hs | 7 |
3 files changed, 17 insertions, 5 deletions
diff --git a/hadrian/src/Oracles/Setting.hs b/hadrian/src/Oracles/Setting.hs index 73fd1ce273..c10e3fc44d 100644 --- a/hadrian/src/Oracles/Setting.hs +++ b/hadrian/src/Oracles/Setting.hs @@ -36,6 +36,7 @@ data Setting = BuildArch | BuildOs | BuildPlatform | BuildVendor + | CursesIncludeDir | CursesLibDir | DynamicExtension | FfiIncludeDir @@ -133,6 +134,7 @@ setting key = lookupValueOrError configFile $ case key of BuildOs -> "build-os" BuildPlatform -> "build-platform" BuildVendor -> "build-vendor" + CursesIncludeDir -> "curses-include-dir" CursesLibDir -> "curses-lib-dir" DynamicExtension -> "dynamic-extension" FfiIncludeDir -> "ffi-include-dir" diff --git a/hadrian/src/Settings/Builders/Common.hs b/hadrian/src/Settings/Builders/Common.hs index 8daa8a1f88..b6464fe357 100644 --- a/hadrian/src/Settings/Builders/Common.hs +++ b/hadrian/src/Settings/Builders/Common.hs @@ -26,15 +26,18 @@ cIncludeArgs = do incDirs <- getContextData includeDirs depDirs <- getContextData depIncludeDirs stage <- getStage - iconvIncludeDir <- getSetting IconvIncludeDir - gmpIncludeDir <- getSetting GmpIncludeDir - ffiIncludeDir <- getSetting FfiIncludeDir - libdwIncludeDir <- getSetting FfiIncludeDir + -- TODO: Why is any of this necessary? We should have already told Cabal about these paths. + iconvIncludeDir <- getSetting IconvIncludeDir + gmpIncludeDir <- getSetting GmpIncludeDir + ffiIncludeDir <- getSetting FfiIncludeDir + libdwIncludeDir <- getSetting LibdwIncludeDir + numaIncludeDir <- getSetting LibnumaIncludeDir + cursesIncludeDir <- getSetting CursesIncludeDir libPath <- expr $ stageLibPath stage mconcat [ notStage0 ||^ package compiler ? arg "-Irts/include" , arg $ "-I" ++ libPath , arg $ "-I" ++ path - , pure . map ("-I"++) . filter (/= "") $ [iconvIncludeDir, gmpIncludeDir] + , pure . map ("-I"++) . filter (/= "") $ [iconvIncludeDir, gmpIncludeDir, numaIncludeDir, cursesIncludeDir] , flag UseSystemFfi ? if not (null ffiIncludeDir) then arg ("-I" ++ ffiIncludeDir) else mempty , flag WithLibdw ? if not (null libdwIncludeDir) then arg ("-I" ++ libdwIncludeDir) else mempty -- Add @incDirs@ in the build directory, since some files generated diff --git a/hadrian/src/Settings/Packages.hs b/hadrian/src/Settings/Packages.hs index c8258db82f..e3c6b92dbc 100644 --- a/hadrian/src/Settings/Packages.hs +++ b/hadrian/src/Settings/Packages.hs @@ -22,6 +22,9 @@ packageArgs = do -- are building. This is used to build cross-compilers bootCross = (==) <$> ghcVersionStage Stage0 <*> ghcVersionStage Stage1 + cursesIncludeDir <- getSetting CursesIncludeDir + cursesLibraryDir <- getSetting CursesLibDir + mconcat --------------------------------- base --------------------------------- [ package base ? mconcat @@ -163,6 +166,10 @@ packageArgs = do , package haskeline ? builder (Cabal Flags) ? notM cross `cabalFlag` "terminfo" + -------------------------------- terminfo ------------------------------ + , package terminfo ? + builder (Cabal Setup) ? cabalExtraDirs cursesIncludeDir cursesLibraryDir + -------------------------------- hsc2hs -------------------------------- , package hsc2hs ? builder (Cabal Flags) ? arg "in-ghc-tree" |