Dependency specifications
[Paludis]


Files

file  dep_label-fwd.hh
file  dep_label.hh
file  dep_list_exceptions.hh
file  dep_list_options.hh
file  dep_spec-fwd.hh
file  dep_spec.hh
file  dep_spec_flattener.hh
file  dep_tag-fwd.hh
file  dep_tag.hh
file  distribution-fwd.hh
file  version_requirements-fwd.hh
file  version_requirements.hh
file  example_dep_label.cc
file  example_dep_spec.cc
file  example_dep_spec_flattener.cc
file  example_dep_tag.cc

Classes

class  paludis::URILabel
class  paludis::ConcreteURILabel< T_ >
class  paludis::DependencyLabel
struct  paludis::DependencySystemLabel
struct  paludis::DependencyTypeLabel
struct  paludis::DependencySuggestLabel
struct  paludis::DependencyABIsLabel
class  paludis::ConcreteDependencyLabel< T_, C_ >
class  paludis::ActiveDependencyLabels
class  paludis::DepSpec
class  paludis::AnyDepSpec
class  paludis::AllDepSpec
class  paludis::ConditionalDepSpec
class  paludis::ConditionalDepSpecData
class  paludis::StringDepSpec
class  paludis::AdditionalPackageDepSpecRequirement
struct  paludis::InstallableToRepository
struct  paludis::InstallableToPath
class  paludis::PartiallyMadePackageDepSpec
class  paludis::PackageDepSpec
class  paludis::PackageDepSpecData
class  paludis::PlainTextDepSpec
class  paludis::NamedSetDepSpec
class  paludis::LicenseDepSpec
class  paludis::FetchableURIDepSpec
class  paludis::SimpleURIDepSpec
class  paludis::PackageDepSpecError
class  paludis::BlockDepSpec
class  paludis::LabelsDepSpec< Labels_ >
class  paludis::DepSpecFlattener< Heirarchy_, Item_ >
class  paludis::DepTagCategory
class  paludis::DepTagCategoryFactory
class  paludis::DepTag
class  paludis::GLSADepTag
class  paludis::GeneralSetDepTag
class  paludis::DependencyDepTag
class  paludis::TargetDepTag
struct  paludis::PackageDepSpecProperties
class  paludis::GotASetNotAPackageDepSpec
class  paludis::UserKeyRequirement
struct  paludis::VersionRequirement

Typedefs

typedef Sequence
< std::tr1::shared_ptr< const
DependencyLabel > > 
paludis::DependencyLabelSequence
typedef Sequence
< std::tr1::shared_ptr< const
DependencySystemLabel > > 
paludis::DependencySystemLabelSequence
typedef Sequence
< std::tr1::shared_ptr< const
DependencyTypeLabel > > 
paludis::DependencyTypeLabelSequence
typedef Sequence
< std::tr1::shared_ptr< const
DependencySuggestLabel > > 
paludis::DependencySuggestLabelSequence
typedef Sequence
< std::tr1::shared_ptr< const
DependencyABIsLabel > > 
paludis::DependencyABIsLabelSequence
typedef
ConcreteDependencyLabel
< DependencyHostLabelTag,
DependencySystemLabel > 
paludis::DependencyHostLabel
typedef
ConcreteDependencyLabel
< DependencyTargetLabelTag,
DependencySystemLabel > 
paludis::DependencyTargetLabel
typedef
ConcreteDependencyLabel
< DependencyBuildLabelTag,
DependencyTypeLabel > 
paludis::DependencyBuildLabel
typedef
ConcreteDependencyLabel
< DependencyRunLabelTag,
DependencyTypeLabel > 
paludis::DependencyRunLabel
typedef
ConcreteDependencyLabel
< DependencyPostLabelTag,
DependencyTypeLabel > 
paludis::DependencyPostLabel
typedef
ConcreteDependencyLabel
< DependencyInstallLabelTag,
DependencyTypeLabel > 
paludis::DependencyInstallLabel
typedef
ConcreteDependencyLabel
< DependencyCompileLabelTag,
DependencyTypeLabel > 
paludis::DependencyCompileLabel
typedef
ConcreteDependencyLabel
< DependencySuggestedLabelTag,
DependencySuggestLabel > 
paludis::DependencySuggestedLabel
typedef
ConcreteDependencyLabel
< DependencyRecommendedLabelTag,
DependencySuggestLabel > 
paludis::DependencyRecommendedLabel
typedef
ConcreteDependencyLabel
< DependencyRequiredLabelTag,
DependencySuggestLabel > 
paludis::DependencyRequiredLabel
typedef
ConcreteDependencyLabel
< DependencyAnyLabelTag,
DependencyABIsLabel > 
paludis::DependencyAnyLabel
typedef
ConcreteDependencyLabel
< DependencyMineLabelTag,
DependencyABIsLabel > 
paludis::DependencyMineLabel
typedef
ConcreteDependencyLabel
< DependencyPrimaryLabelTag,
DependencyABIsLabel > 
paludis::DependencyPrimaryLabel
typedef
ConcreteDependencyLabel
< DependencyABILabelTag,
DependencyABIsLabel > 
paludis::DependencyABILabel
typedef Options
< PartiallyMadePackageDepSpecOption > 
paludis::PartiallyMadePackageDepSpecOptions
typedef LabelsDepSpec< URILabel > paludis::URILabelsDepSpec
typedef LabelsDepSpec
< DependencyLabel > 
paludis::DependencyLabelsDepSpec
typedef Sequence
< std::tr1::shared_ptr< const
AdditionalPackageDepSpecRequirement > > 
paludis::AdditionalPackageDepSpecRequirements
typedef Set< DepTagEntry,
DepTagEntryComparator > 
paludis::DepListEntryTags
typedef Options
< UserPackageDepSpecOption > 
paludis::UserPackageDepSpecOptions
typedef Sequence
< VersionRequirement > 
paludis::VersionRequirements

Enumerations

enum  paludis::PartiallyMadePackageDepSpecOption { paludis::pmpdso_always_use_ranged_deps, paludis::last_pmpdso }
enum  paludis::UserPackageDepSpecOption { paludis::updso_allow_wildcards, paludis::updso_throw_if_set, paludis::updso_no_disambiguation, paludis::last_updso }
enum  paludis::VersionRequirementsMode { vr_or, paludis::vr_and, paludis::last_vr }
enum  paludis::VersionSpecOption {
  paludis::vso_flexible_dashes, paludis::vso_flexible_dots, paludis::vso_ignore_case, paludis::vso_letters_anywhere,
  paludis::vso_dotted_suffixes, paludis::last_vso
}
enum  paludis::VersionSpecComponentType {
  paludis::vsct_alpha, paludis::vsct_beta, paludis::vsct_pre, paludis::vsct_rc,
  paludis::vsct_empty, paludis::vsct_revision, paludis::vsct_patch, paludis::vsct_trypart,
  paludis::vsct_letter, paludis::vsct_floatlike, paludis::vsct_number, paludis::vsct_scm,
  paludis::last_vsct
}

Functions

std::ostream & paludis::operator<< (std::ostream &, const URILabel &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const DependencyLabel &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const AdditionalPackageDepSpecRequirement &) PALUDIS_VISIBLE
PartiallyMadePackageDepSpec paludis::make_package_dep_spec (const PartiallyMadePackageDepSpecOptions &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const PlainTextDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const PackageDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const URILabelsDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const BlockDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const SimpleURIDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const FetchableURIDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const LicenseDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const ConditionalDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const NamedSetDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const PlainTextLabelDepSpec &) PALUDIS_VISIBLE
bool paludis::package_dep_spec_has_properties (const PackageDepSpec &, const PackageDepSpecProperties &) PALUDIS_VISIBLE PALUDIS_ATTRIBUTE((warn_unused_result))
VersionSpecOptions paludis::user_version_spec_options () PALUDIS_ATTRIBUTE((warn_unused_result)) PALUDIS_VISIBLE
PackageDepSpec paludis::parse_user_package_dep_spec (const std::string &, const Environment *const, const UserPackageDepSpecOptions &, const Filter &=filter::All()) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const VersionRequirementsMode &) PALUDIS_VISIBLE

Detailed Description

Dependency specification classes provide an abstraction representing dependency and dependency-like (for example, SRC_URI, RESTRICT) heirarchies.

Examples


Typedef Documentation

typedef Sequence<std::tr1::shared_ptr<const AdditionalPackageDepSpecRequirement> > paludis::AdditionalPackageDepSpecRequirements

A collection of additional requirements for a PackageDepSpec.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyABILabelTag, DependencyABIsLabel> paludis::DependencyABILabel

A DependencyABILabel specifies that a dependency can be satisfied by a named ABI.

Since:
0.26

typedef Sequence<std::tr1::shared_ptr<const DependencyABIsLabel> > paludis::DependencyABIsLabelSequence

A collection of DependencyABIsLabel instances.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyAnyLabelTag, DependencyABIsLabel> paludis::DependencyAnyLabel

A DependencyAnyLabel specifies that a dependency can be satisfied by any ABI.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyBuildLabelTag, DependencyTypeLabel> paludis::DependencyBuildLabel

A DependencyBuildLabel specifies build-time requirements for building a package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyCompileLabelTag, DependencyTypeLabel> paludis::DependencyCompileLabel

A DependencyCompileLabel specifies compiled-against requirements for building a package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyHostLabelTag, DependencySystemLabel> paludis::DependencyHostLabel

A DependencyHostLabel specifies host requirements for building a package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyInstallLabelTag, DependencyTypeLabel> paludis::DependencyInstallLabel

A DependencyInstallLabel specifies install-time requirements for building a package.

Since:
0.26

typedef LabelsDepSpec<DependencyLabel> paludis::DependencyLabelsDepSpec

A DependencyLabelsDepSpec represents labels in a DependencySpecTree.

Since:
0.26

typedef Sequence<std::tr1::shared_ptr<const DependencyLabel> > paludis::DependencyLabelSequence

A collection of DependencyLabel instances.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyMineLabelTag, DependencyABIsLabel> paludis::DependencyMineLabel

A DependencyMineLabel specifies that a dependency is satisfied by ABIs equal to those being used to create the depending package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyPostLabelTag, DependencyTypeLabel> paludis::DependencyPostLabel

A DependencyPostLabel specifies build-time requirements for building a package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyPrimaryLabelTag, DependencyABIsLabel> paludis::DependencyPrimaryLabel

A DependencyPrimaryLabel specifies that a dependency can be satisfied by the primary ABI.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyRecommendedLabelTag, DependencySuggestLabel> paludis::DependencyRecommendedLabel

A DependencyRecommendedLabel specifies that a dependency is recommended.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyRequiredLabelTag, DependencySuggestLabel> paludis::DependencyRequiredLabel

A DependencyRequiredLabel specifies that a dependency is required.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyRunLabelTag, DependencyTypeLabel> paludis::DependencyRunLabel

A DependencyRunLabel specifies runtime requirements for building a package.

Since:
0.26

typedef ConcreteDependencyLabel<DependencySuggestedLabelTag, DependencySuggestLabel> paludis::DependencySuggestedLabel

A DependencySuggestLabel specifies that a dependency is suggested.

Since:
0.26

typedef Sequence<std::tr1::shared_ptr<const DependencySuggestLabel> > paludis::DependencySuggestLabelSequence

A collection of DependencySuggestLabel instances.

Since:
0.26

typedef Sequence<std::tr1::shared_ptr<const DependencySystemLabel> > paludis::DependencySystemLabelSequence

A collection of DependencySystemLabel instances.

Since:
0.26

typedef ConcreteDependencyLabel<DependencyTargetLabelTag, DependencySystemLabel> paludis::DependencyTargetLabel

A DependencyTargetLabel specifies target requirements for building a package.

Since:
0.26

typedef Sequence<std::tr1::shared_ptr<const DependencyTypeLabel> > paludis::DependencyTypeLabelSequence

A collection of DependencyTypeLabel instances.

Since:
0.26

typedef Set<DepTagEntry, DepTagEntryComparator> paludis::DepListEntryTags

Tags attached to a DepListEntry.

typedef Options<PartiallyMadePackageDepSpecOption> paludis::PartiallyMadePackageDepSpecOptions

Options for PartiallyMadePackageDepSpec.

Since:
0.38
Examples:
example_match_package.cc, and example_selection.cc.

typedef LabelsDepSpec<URILabel> paludis::URILabelsDepSpec

A URILabelsDepSpec represents labels in a FetchableURISpecTree.

Since:
0.26

typedef Options<UserPackageDepSpecOption> paludis::UserPackageDepSpecOptions

Options for parse_user_package_dep_spec.

Since:
0.26
Examples:
example_dep_spec.cc.

typedef Sequence<VersionRequirement> paludis::VersionRequirements

A collection of VersionRequirement instances, usually for a PackageDepSpec.

See also:
PackageDepSpec


Enumeration Type Documentation

enum paludis::PartiallyMadePackageDepSpecOption

Options for PartiallyMadePackageDepSpec.

Since:
0.38
Enumerator:
pmpdso_always_use_ranged_deps  Always write [>=1] style dependencies.
last_pmpdso  Number of keys in paludis::PartiallyMadePackageDepSpecOption.

enum paludis::UserPackageDepSpecOption

Options for parse_user_package_dep_spec.

Since:
0.26
Enumerator:
updso_allow_wildcards  Allow wildcards for category, package.
updso_throw_if_set  Check if it's a set, and throw GotASetNotAPackageDepSpec if so.

Since:
0.28
updso_no_disambiguation  Require an explicit category.

Since:
0.28
last_updso  Number of keys in paludis::UserPackageDepSpecOption.

enum paludis::VersionRequirementsMode

Whether our version requirements are an 'and' or an 'or' set.

See also:
PackageDepSpec
Enumerator:
vr_and  < Must match one
last_vr  < Must match all

enum paludis::VersionSpecComponentType

The type of a VersionSpec component.

Since:
0.32
Enumerator:
vsct_alpha  An alpha part.
vsct_beta  A beta part.
vsct_pre  A pre part.
vsct_rc  An rc part.
vsct_empty  Used for ordering, not present in real versions.
vsct_revision  A revision part.
vsct_patch  A patch part.
vsct_trypart  A try part.
vsct_letter  A letter (e.g. x in 1.2x).
vsct_floatlike  A number to be compared using float-like rules.
vsct_number  A number (e.g. 1 or 2 in 1.2_pre3).
vsct_scm  An scm part.
last_vsct  Number of keys in paludis::VersionSpecComponentType.

enum paludis::VersionSpecOption

An option for parsing a VersionSpec.

Since:
0.38
See also:
VersionSpecOptions
Enumerator:
vso_flexible_dashes  Allow - and _ to be interchanged.
vso_flexible_dots  Allow - where . is allowed.
vso_ignore_case  Allow uppercase letters.
vso_letters_anywhere  Allow 1a2.3 etc.
vso_dotted_suffixes  Allow 1_alpha2.3.
last_vso  Number of keys in paludis::VersionSpecOption.


Function Documentation

PartiallyMadePackageDepSpec paludis::make_package_dep_spec ( const PartiallyMadePackageDepSpecOptions &   ) 

Create a PackageDepSpec from various rules.

Note the return type is a PartiallyMadePackageDepSpec, which is implicitly convertible to a PackageDepSpec.

Since:
0.26
Examples:
example_match_package.cc, and example_selection.cc.

std::ostream& paludis::operator<< ( std::ostream &  ,
const VersionRequirementsMode &   
)

Write a VersionRequirementsMode to a stream.

std::ostream& paludis::operator<< ( std::ostream &  ,
const PlainTextLabelDepSpec &   
)

A PlainTextLabelDepSpec can be written to an ostream.

Since:
0.32

std::ostream& paludis::operator<< ( std::ostream &  ,
const NamedSetDepSpec &   
)

A NamedSetDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const ConditionalDepSpec &   
)

A ConditionalDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const LicenseDepSpec &   
)

A LicenseDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const FetchableURIDepSpec &   
)

A FetchableURIDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const SimpleURIDepSpec &   
)

A SimpleURIDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const BlockDepSpec &   
)

A BlockDepSpec can be written to an ostream.

Since:
0.26

std::ostream & paludis::operator<< ( std::ostream &  ,
const URILabelsDepSpec &   
)

A URILabelsDepSpec can be written to an ostream.

Since:
0.26
A DependencyLabelsDepSpec can be written to an ostream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const PackageDepSpec &   
)

A PackageDepSpec can be written to an ostream.

std::ostream& paludis::operator<< ( std::ostream &  ,
const PlainTextDepSpec &   
)

A PlainTextDepSpec can be written to an ostream.

std::ostream& paludis::operator<< ( std::ostream &  ,
const AdditionalPackageDepSpecRequirement &   
)

An AdditionalPackageDepSpecRequirement can be written to an ostream.

std::ostream& paludis::operator<< ( std::ostream &  ,
const DependencyLabel &   
)

A DependencyLabel can be written to a stream.

Since:
0.26

std::ostream& paludis::operator<< ( std::ostream &  ,
const URILabel &   
)

A URILabel can be written to a stream.

Since:
0.26

bool paludis::package_dep_spec_has_properties ( const PackageDepSpec &  ,
const PackageDepSpecProperties &   
)

Does a PackageDepSpec match the specified property requirements?

We have a lot of code that wants to know things like "does this spec consist exactly of a cat/pkg:slot?" and "does this spec have anything other than a cat, pkg or slot?". All of these places need to be updated every time a new PackageDepSpec attribute comes along. Using this function makes sure the compiler catches any properties we haven't updated.

Since:
0.34.1

PackageDepSpec paludis::parse_user_package_dep_spec ( const std::string &  ,
const Environment *  const,
const UserPackageDepSpecOptions &  ,
const Filter &  = filter::All() 
)

Create a PackageDepSpec from user input.

Since:
0.28
Examples:
example_dep_spec.cc.

VersionSpecOptions paludis::user_version_spec_options (  ) 

The VersionSpecOptions to use for parsing a user spec.

Since:
0.38
Examples:
example_version_operator.cc, and example_version_spec.cc.


Generated on Mon Sep 21 10:36:09 2009 for paludis by  doxygen 1.5.4