1- {-# LANGUAGE NoImplicitPrelude #-}
2- {-# LANGUAGE CPP #-}
3- {-# LANGUAGE DataKinds #-}
4- {-# LANGUAGE DeriveDataTypeable #-}
5- {-# LANGUAGE FlexibleContexts #-}
6- {-# LANGUAGE FlexibleInstances #-}
7- {-# LANGUAGE OverloadedStrings #-}
8- {-# LANGUAGE RankNTypes #-}
9- {-# LANGUAGE RecordWildCards #-}
1+ {-# LANGUAGE CPP #-}
2+ {-# LANGUAGE NoImplicitPrelude #-}
3+ {-# LANGUAGE TupleSections #-}
104{-# LANGUAGE ScopedTypeVariables #-}
11- {-# LANGUAGE TupleSections #-}
5+ {-# LANGUAGE FlexibleContexts #-}
6+ {-# LANGUAGE DataKinds #-}
7+ {-# LANGUAGE DeriveDataTypeable #-}
8+ {-# LANGUAGE FlexibleInstances #-}
9+ {-# LANGUAGE OverloadedStrings #-}
10+ {-# LANGUAGE RankNTypes #-}
11+ {-# LANGUAGE RecordWildCards #-}
12+ {-# LANGUAGE LambdaCase #-}
1213
1314-- | Dealing with Cabal.
1415
@@ -32,6 +33,7 @@ import Data.List (find, isPrefixOf, unzip)
3233import qualified Data.Map.Strict as M
3334import qualified Data.Set as S
3435import qualified Data.Text as T
36+ import qualified Distribution.Compat.NonEmptySet as NES
3537import Distribution.CabalSpecVersion
3638import Distribution.Compiler
3739import Distribution.ModuleName (ModuleName )
@@ -144,6 +146,7 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
144146 , packageDefaultFlags = M. fromList
145147 [(flagName flag, flagDefault flag) | flag <- pkgFlags]
146148 , packageAllDeps = S. fromList (M. keys deps)
149+ , packageSubLibDeps = subLibDeps
147150 , packageLibraries =
148151 let mlib = do
149152 lib <- library pkg
@@ -258,6 +261,13 @@ packageFromPackageDescription packageConfig pkgFlags (PackageDescriptionPair pkg
258261 (M. fromList . map (depPkgName &&& depVerRange) . setupDepends)
259262 (setupBuildInfo pkg)
260263
264+ -- TODO: Should merge this calculation with deps.
265+ subLibDeps = S. fromList $ concatMap
266+ (\ (Dependency n _ libs) -> mapMaybe (getSubLibName n) (NES. toList libs))
267+ (concatMap targetBuildDepends (allBuildInfo' pkg))
268+ getSubLibName pn (LSubLibName cn) = Just (T. pack (unPackageName pn <> " :" <> Cabal. unUnqualComponentName cn))
269+ getSubLibName _ _ = Nothing
270+
261271 asLibrary range = DepValue
262272 { dvVersionRange = range
263273 , dvType = AsLibrary
0 commit comments