Distribution.Types.Library

Cabal-2.4.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 #

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 # |
Instance details Defined in Distribution.Types.Library Methods (==) :: Library -> Library -> Bool # (/=) :: Library -> Library -> Bool #
Data Library # |
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 # |
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 # |
Instance details Defined in Distribution.Types.Library Methods showsPrec :: Int -> Library -> ShowS Source # show :: Library -> String Source # showList :: [Library] -> ShowS Source #
Generic Library # |
Instance details Defined in Distribution.Types.Library Associated Types type Rep Library :: Type -> Type Source # Methods from :: Library -> Rep Library x Source # to :: Rep Library x -> Library Source #
Semigroup Library # |
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 # |
Instance details Defined in Distribution.Types.Library Methods mempty :: Library Source # mappend :: Library -> Library -> Library Source # mconcat :: [Library] -> Library Source #
Binary Library # |
Instance details Defined in Distribution.Types.Library Methods put :: Library -> Put Source # get :: Get Library Source # putList :: [Library] -> Put Source #
NFData Library # |
Instance details Defined in Distribution.Types.Library Methods rnf :: Library -> () Source #
HasBuildInfo Library # |
Instance details Defined in Distribution.Types.Library Methods buildInfo :: Lens' Library BuildInfo # buildable :: Lens' Library Bool # buildTools :: Lens' Library [LegacyExeDependency] # buildToolDepends :: Lens' Library [ExeDependency] # cppOptions :: Lens' Library [String] # asmOptions :: Lens' Library [String] # cmmOptions :: Lens' Library [String] # ccOptions :: Lens' Library [String] # cxxOptions :: Lens' Library [String] # ldOptions :: Lens' Library [String] # pkgconfigDepends :: Lens' Library [PkgconfigDependency] # frameworks :: Lens' Library [String] # extraFrameworkDirs :: Lens' Library [String] # asmSources :: Lens' Library [FilePath] # cmmSources :: Lens' Library [FilePath] # cSources :: Lens' Library [FilePath] # cxxSources :: Lens' Library [FilePath] # jsSources :: Lens' Library [FilePath] # hsSourceDirs :: Lens' Library [FilePath] # otherModules :: Lens' Library [ModuleName] # virtualModules :: Lens' Library [ModuleName] # autogenModules :: Lens' Library [ModuleName] # defaultLanguage :: Lens' Library (Maybe Language) # otherLanguages :: Lens' Library [Language] # defaultExtensions :: Lens' Library [Extension] # otherExtensions :: Lens' Library [Extension] # oldExtensions :: Lens' Library [Extension] # extraLibs :: Lens' Library [String] # extraGHCiLibs :: Lens' Library [String] # extraBundledLibs :: Lens' Library [String] # extraLibFlavours :: Lens' Library [String] # extraLibDirs :: Lens' Library [String] # includeDirs :: Lens' Library [FilePath] # includes :: Lens' Library [FilePath] # installIncludes :: Lens' Library [FilePath] # options :: Lens' Library [(CompilerFlavor, [String])] # profOptions :: Lens' Library [(CompilerFlavor, [String])] # sharedOptions :: Lens' Library [(CompilerFlavor, [String])] # staticOptions :: Lens' Library [(CompilerFlavor, [String])] # customFieldsBI :: Lens' Library [(String, String)] # targetBuildDepends :: Lens' Library [Dependency] # mixins :: Lens' Library [Mixin] #
type Rep Library # |
Instance details Defined in Distribution.Types.Library type Rep Library = D1 (MetaData "Library" "Distribution.Types.Library" "Cabal-2.4.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 #

explicitLibModules :: Library -> [ModuleName] #

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] #

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

libModules :: Library -> [ModuleName] #

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`.