diff --git a/Cabal/Distribution/PackageDescription/Parse.hs b/Cabal/Distribution/PackageDescription/Parse.hs index 134da968a1a..711d2560fca 100644 --- a/Cabal/Distribution/PackageDescription/Parse.hs +++ b/Cabal/Distribution/PackageDescription/Parse.hs @@ -411,6 +411,9 @@ binfoFieldDescrs = , commaListField "build-tools" disp parse buildTools (\xs binfo -> binfo{buildTools=xs}) + , commaListField "tool-depends" + disp parse + toolDepends (\xs binfo -> binfo{toolDepends=xs}) , commaListFieldWithSep vcat "build-depends" disp parse targetBuildDepends (\xs binfo -> binfo{targetBuildDepends=xs}) diff --git a/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs b/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs index bf92716aea5..7c4c236effc 100644 --- a/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs +++ b/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs @@ -417,6 +417,9 @@ binfoFieldDescrs = , commaListField "build-tools" disp parsec buildTools (\xs binfo -> binfo{buildTools=xs}) + , commaListField "tool-depends" + disp parsec + toolDepends (\xs binfo -> binfo{toolDepends=xs}) , commaListFieldWithSep vcat "build-depends" disp parsec targetBuildDepends (\xs binfo -> binfo{targetBuildDepends=xs}) diff --git a/Cabal/Distribution/Types/BuildInfo.hs b/Cabal/Distribution/Types/BuildInfo.hs index f1528801bc7..6bd437caa0e 100644 --- a/Cabal/Distribution/Types/BuildInfo.hs +++ b/Cabal/Distribution/Types/BuildInfo.hs @@ -30,6 +30,7 @@ import Language.Haskell.Extension data BuildInfo = BuildInfo { buildable :: Bool, -- ^ component is buildable here buildTools :: [LegacyExeDependency], -- ^ tools needed to build this bit + toolDepends :: [ExeDependency], -- ^ haskell tools needed to build this bit cppOptions :: [String], -- ^ options for pre-processing Haskell code ccOptions :: [String], -- ^ options for C compiler ldOptions :: [String], -- ^ options for linker @@ -71,6 +72,7 @@ instance Monoid BuildInfo where mempty = BuildInfo { buildable = True, buildTools = [], + toolDepends = [], cppOptions = [], ccOptions = [], ldOptions = [], @@ -106,6 +108,7 @@ instance Semigroup BuildInfo where a <> b = BuildInfo { buildable = buildable a && buildable b, buildTools = combine buildTools, + toolDepends = combine toolDepends, cppOptions = combine cppOptions, ccOptions = combine ccOptions, ldOptions = combine ldOptions,