{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} module Distribution.Types.GivenComponent ( GivenComponent(..) ) where import Distribution.Compat.Prelude import Distribution.Types.ComponentId import Distribution.Types.LibraryName import Distribution.Types.PackageName -- | A 'GivenComponent' represents a library depended on and explicitly -- specified by the user/client with @--dependency@ -- -- It enables Cabal to know which 'ComponentId' to associate with a library -- -- @since 2.3.0.0 data GivenComponent = GivenComponent { givenComponentPackage :: PackageName , givenComponentName :: LibraryName -- --dependency is for libraries -- only, not for any component , givenComponentId :: ComponentId } deriving (Generic, Read, Show, Eq, Typeable) instance Binary GivenComponent instance Structured GivenComponent