@@ -31,10 +31,15 @@ import Data.Text.Unsafe qualified as T
3131import Data.Time (UTCTime )
3232import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds )
3333import Distribution.Compat.Lens (toListOf )
34+ import Distribution.Compat.NonEmptySet qualified as NES (singleton )
35+ import Distribution.PackageDescription.Configuration (flattenPackageDescription )
3436import Distribution.PackageDescription.Parsec (parseGenericPackageDescriptionMaybe )
37+ import Distribution.Simple.BuildToolDepends (getAllToolDependencies )
3538import Distribution.Types.BuildInfo (targetBuildDepends )
3639import Distribution.Types.BuildInfo.Lens qualified as Lens
3740import Distribution.Types.Dependency (Dependency (.. ))
41+ import Distribution.Types.ExeDependency (ExeDependency (.. ))
42+ import Distribution.Types.LibraryName (LibraryName (.. ))
3843import Distribution.Types.PackageName (PackageName , mkPackageName , unPackageName )
3944import Distribution.Types.VersionRange (VersionRange )
4045import Distribution.Version (Version , intersectVersionRanges , mkVersion , simplifyVersionRange )
@@ -201,7 +206,15 @@ extractAllDependencies = relevantDeps (const True) . extractDeps
201206extractDeps :: ByteString -> [Dependency ]
202207extractDeps cnt = case parseGenericPackageDescriptionMaybe cnt of
203208 Nothing -> mempty
204- Just descr -> foldMap targetBuildDepends $ toListOf Lens. traverseBuildInfos descr
209+ Just descr ->
210+ foldMap
211+ ( \ bi ->
212+ targetBuildDepends bi
213+ <> map
214+ (\ (ExeDependency pkg _ ver) -> Dependency pkg ver (NES. singleton LMainLibName ))
215+ (getAllToolDependencies (flattenPackageDescription descr) bi)
216+ )
217+ (toListOf Lens. traverseBuildInfos descr)
205218
206219relevantDeps :: (PackageName -> Bool ) -> [Dependency ] -> Map PackageName VersionRange
207220relevantDeps predicate =
0 commit comments