Distribution.Types.Library

Cabal-2.2.0.1: A framework for packaging Haskell software

Safe Haskell | None
Language | Haskell2010

Distribution.Types.Library

Synopsis

- data Library = Library {
  - libName :: Maybe UnqualComponentName
  - exposedModules :: [ModuleName]
  - reexportedModules :: [ModuleReexport]
  - signatures :: [ModuleName]
  - libExposed :: Bool
  - libBuildInfo :: BuildInfo
  }
- emptyLibrary :: Library
- explicitLibModules :: Library -> [ModuleName]
- libModulesAutogen :: Library -> [ModuleName]
- libModules :: Library -> [ModuleName]

# Documentation

data Library Source #

Constructors

Library |
Fields libName :: Maybe UnqualComponentName exposedModules :: [ModuleName] reexportedModules :: [ModuleReexport] signatures :: [ModuleName] What sigs need implementations? libExposed :: Bool Is the lib to be exposed by default? libBuildInfo :: BuildInfo

Instances

Eq Library Source # |
Instance details Defined in Distribution.Types.Library Methods (==) :: Library -> Library -> Bool # (/=) :: Library -> Library -> Bool #
Data Library Source # |
Instance details Defined in Distribution.Types.Library Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Library -> c Library Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Library Source # toConstr :: Library -> Constr Source # dataTypeOf :: Library -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Library) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Library) Source # gmapT :: (forall b. Data b => b -> b) -> Library -> Library Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Library -> r Source # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Library -> r Source # gmapQ :: (forall d. Data d => d -> u) -> Library -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> Library -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Library -> m Library Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Library -> m Library Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Library -> m Library Source #
Read Library Source # |
Instance details Defined in Distribution.Types.Library Methods readsPrec :: Int -> ReadS Library Source # readList :: ReadS [Library] Source # readPrec :: ReadPrec Library Source # readListPrec :: ReadPrec [Library] Source #
Show Library Source # |
Instance details Defined in Distribution.Types.Library Methods showsPrec :: Int -> Library -> ShowS Source # show :: Library -> String Source # showList :: [Library] -> ShowS Source #
Generic Library Source # |
Instance details Defined in Distribution.Types.Library Associated Types type Rep Library :: * -> * Source # Methods from :: Library -> Rep Library x Source # to :: Rep Library x -> Library Source #
Semigroup Library Source # |
Instance details Defined in Distribution.Types.Library Methods (<>) :: Library -> Library -> Library Source # sconcat :: NonEmpty Library -> Library Source # stimes :: Integral b => b -> Library -> Library Source #
Monoid Library Source # |
Instance details Defined in Distribution.Types.Library Methods mempty :: Library Source # mappend :: Library -> Library -> Library Source # mconcat :: [Library] -> Library Source #
NFData Library Source # |
Instance details Defined in Distribution.Types.Library Methods rnf :: Library -> () Source #
Binary Library Source # |
Instance details Defined in Distribution.Types.Library Methods put :: Library -> Put Source # get :: Get Library Source # putList :: [Library] -> Put Source #
HasBuildInfo Library Source # |
Instance details Defined in Distribution.Types.Library Methods buildInfo :: Lens' Library BuildInfo Source # buildable :: Lens' Library Bool Source # buildTools :: Lens' Library [LegacyExeDependency] Source # buildToolDepends :: Lens' Library [ExeDependency] Source # cppOptions :: Lens' Library [String] Source # asmOptions :: Lens' Library [String] Source # cmmOptions :: Lens' Library [String] Source # ccOptions :: Lens' Library [String] Source # cxxOptions :: Lens' Library [String] Source # ldOptions :: Lens' Library [String] Source # pkgconfigDepends :: Lens' Library [PkgconfigDependency] Source # frameworks :: Lens' Library [String] Source # extraFrameworkDirs :: Lens' Library [String] Source # asmSources :: Lens' Library [FilePath] Source # cmmSources :: Lens' Library [FilePath] Source # cSources :: Lens' Library [FilePath] Source # cxxSources :: Lens' Library [FilePath] Source # jsSources :: Lens' Library [FilePath] Source # hsSourceDirs :: Lens' Library [FilePath] Source # otherModules :: Lens' Library [ModuleName] Source # virtualModules :: Lens' Library [ModuleName] Source # autogenModules :: Lens' Library [ModuleName] Source # defaultLanguage :: Lens' Library (Maybe Language) Source # otherLanguages :: Lens' Library [Language] Source # defaultExtensions :: Lens' Library [Extension] Source # otherExtensions :: Lens' Library [Extension] Source # oldExtensions :: Lens' Library [Extension] Source # extraLibs :: Lens' Library [String] Source # extraGHCiLibs :: Lens' Library [String] Source # extraBundledLibs :: Lens' Library [String] Source # extraLibFlavours :: Lens' Library [String] Source # extraLibDirs :: Lens' Library [String] Source # includeDirs :: Lens' Library [FilePath] Source # includes :: Lens' Library [FilePath] Source # installIncludes :: Lens' Library [FilePath] Source # options :: Lens' Library [(CompilerFlavor, [String])] Source # profOptions :: Lens' Library [(CompilerFlavor, [String])] Source # sharedOptions :: Lens' Library [(CompilerFlavor, [String])] Source # staticOptions :: Lens' Library [(CompilerFlavor, [String])] Source # customFieldsBI :: Lens' Library [(String, String)] Source # targetBuildDepends :: Lens' Library [Dependency] Source # mixins :: Lens' Library [Mixin] Source #
type Rep Library Source # |
Instance details Defined in Distribution.Types.Library type Rep Library = D1 (MetaData "Library" "Distribution.Types.Library" "Cabal-2.2.0.1" False) (C1 (MetaCons "Library" PrefixI True) ((S1 (MetaSel (Just "libName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe UnqualComponentName)) :*: (S1 (MetaSel (Just "exposedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName]) :*: S1 (MetaSel (Just "reexportedModules") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleReexport]))) :*: (S1 (MetaSel (Just "signatures") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [ModuleName]) :*: (S1 (MetaSel (Just "libExposed") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: S1 (MetaSel (Just "libBuildInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 BuildInfo)))))

emptyLibrary :: Library Source #

explicitLibModules :: Library -> [ModuleName] Source #

Get all the module names from the library (exposed and internal modules) which are explicitly listed in the package description which would need to be compiled. (This does not include reexports, which do not need to be compiled.) This may not include all modules for which GHC generated interface files (i.e., implicit modules.)

libModulesAutogen :: Library -> [ModuleName] Source #

Get all the auto generated module names from the library, exposed or not. This are a subset of `libModules`.

libModules :: Library -> [ModuleName] Source #

Deprecated: If you want all modules that are built with a library, use `allLibModules`. Otherwise, use `explicitLibModules` for ONLY the modules explicitly mentioned in the package description. This symbol will be removed in Cabal-3.0 (est. Oct 2018).

Backwards-compatibility shim for `explicitLibModules`. In most cases, you actually want `allLibModules`, which returns all modules that will actually be compiled, as opposed to those which are explicitly listed in the package description (`explicitLibModules`); unfortunately, the type signature for `allLibModules` is incompatible since we need a `ComponentLocalBuildInfo`.