{-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Copyright: Herbert Valerio Riedel -- SPDX-License-Identifier: GPL-3.0-or-later -- module Cabal.PD ( C.parseGenericPackageDescription , C.runParseResult , getApiModules , getTools ) where import Utils import Distribution.ModuleName as C import Distribution.Package as C import Distribution.PackageDescription as C import Distribution.PackageDescription.Parsec as C import Distribution.Parsec.Class as C import Distribution.Parsec.Common as C import Distribution.Parsec.Field as C import Distribution.Parsec.Parser as C import Distribution.Pretty as C import qualified Distribution.Text as C import qualified Distribution.Types.CondTree as C import Distribution.Types.ModuleReexport as C import qualified Distribution.Types.UnqualComponentName as C import Distribution.Verbosity as C import Distribution.Version as C import qualified Data.Text as T getApiModules :: GenericPackageDescription -> [Text] getApiModules gpd | Just l <- condLibrary gpd = nubSort $ let l' = fst $ C.ignoreConditions l in (map mn2txt $ exposedModules l') ++ (map (mn2txt . moduleReexportName) $ reexportedModules l') | otherwise = [] where mn2txt :: C.ModuleName -> Text mn2txt = T.intercalate (T.singleton '.') . map T.pack . components getTools :: GenericPackageDescription -> [Text] getTools = map (T.pack . C.unUnqualComponentName . fst) . condExecutables