diff --git a/Cabal/Distribution/PackageDescription/Parse.hs b/Cabal/Distribution/PackageDescription/Parse.hs index 8a62f09af44d48378511d1e3edb30ef11b4d4a93..ed279656680d2ae69c3e59d8140fdcb9f0911d76 100644 --- a/Cabal/Distribution/PackageDescription/Parse.hs +++ b/Cabal/Distribution/PackageDescription/Parse.hs @@ -418,6 +418,9 @@ binfoFieldDescrs = , commaListField "build-tools" disp parse buildTools (\xs binfo -> binfo{buildTools=xs}) + , commaListField "build-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 f6a4b3aa9eb8661d5296419f1c4afe13b9ff0bae..de6a86bfcae044e5c545409454f983c49335e5e7 100644 --- a/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs +++ b/Cabal/Distribution/PackageDescription/Parsec/FieldDescr.hs @@ -423,6 +423,9 @@ binfoFieldDescrs = , commaListField "build-tools" disp parsec buildTools (\xs binfo -> binfo{buildTools=xs}) + , commaListField "build-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 f1528801bc70e803b699aab7c37176681726cdf6..8e30ca061935a1efc3c26ff6a0be3724bcfc5322 100644 --- a/Cabal/Distribution/Types/BuildInfo.hs +++ b/Cabal/Distribution/Types/BuildInfo.hs @@ -19,6 +19,7 @@ import Distribution.Compat.Prelude import Distribution.Types.Mixin import Distribution.Types.Dependency +import Distribution.Types.ExeDependency import Distribution.Types.LegacyExeDependency import Distribution.Types.PkgconfigDependency @@ -30,6 +31,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 +73,7 @@ instance Monoid BuildInfo where mempty = BuildInfo { buildable = True, buildTools = [], + toolDepends = [], cppOptions = [], ccOptions = [], ldOptions = [], @@ -106,6 +109,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,