paludis Version 3.0.2
The one true package mangler
Dependency specifications

Files

file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/dep_label-fwd.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/dep_label.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/dep_spec-fwd.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/dep_spec.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/dep_spec_flattener.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/distribution-fwd.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/version_requirements-fwd.hh
file  /var/tmp/paludis/build/sys-apps-paludis-scm-r1/work/paludis-scm/paludis/version_requirements.hh
file  examples/example_dep_label.cc
file  examples/example_dep_spec.cc
file  examples/example_dep_spec_flattener.cc

Classes

class  paludis::AdditionalPackageDepSpecRequirement
class  paludis::URILabel
class  paludis::SpecificURILabel< T_ >
class  paludis::DependenciesLabel
class  paludis::SpecificDependenciesLabel< T_ >
class  paludis::DepSpec
class  paludis::AnyDepSpec
class  paludis::AllDepSpec
class  paludis::ExactlyOneDepSpec
class  paludis::AtMostOneDepSpec
class  paludis::ConditionalDepSpec
class  paludis::StringDepSpec
struct  paludis::InstallableToRepository
struct  paludis::InstallableToPath
class  paludis::PackageDepSpec
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::ConditionalDepSpecData
class  paludis::PackageDepSpecData
class  paludis::DepSpecFlattener< Heirarchy_, Item_ >
struct  paludis::PackageDepSpecProperties
class  paludis::PartiallyMadePackageDepSpec
class  paludis::SlotRequirement
class  paludis::SlotExactPartialRequirement
class  paludis::SlotExactFullRequirement
class  paludis::SlotAnyAtAllLockedRequirement
class  paludis::SlotAnyPartialLockedRequirement
class  paludis::SlotAnyUnlockedRequirement
class  paludis::SlotUnknownRewrittenRequirement
class  paludis::GotASetNotAPackageDepSpec
class  paludis::UserKeyRequirement
class  paludis::ExcludeRequirement
struct  paludis::VersionRequirement

Typedefs

typedef Sequence< std::shared_ptr< const AdditionalPackageDepSpecRequirement > > paludis::AdditionalPackageDepSpecRequirements
typedef SpecificDependenciesLabel< DependenciesBuildLabelTag > paludis::DependenciesBuildLabel
typedef SpecificDependenciesLabel< DependenciesRunLabelTag > paludis::DependenciesRunLabel
typedef SpecificDependenciesLabel< DependenciesPostLabelTag > paludis::DependenciesPostLabel
typedef SpecificDependenciesLabel< DependenciesCompileAgainstLabelTag > paludis::DependenciesCompileAgainstLabel
typedef SpecificDependenciesLabel< DependenciesFetchLabelTag > paludis::DependenciesFetchLabel
typedef SpecificDependenciesLabel< DependenciesInstallLabelTag > paludis::DependenciesInstallLabel
typedef SpecificDependenciesLabel< DependenciesSuggestionLabelTag > paludis::DependenciesSuggestionLabel
typedef SpecificDependenciesLabel< DependenciesRecommendationLabelTag > paludis::DependenciesRecommendationLabel
typedef SpecificDependenciesLabel< DependenciesTestLabelTag > paludis::DependenciesTestLabel
typedef Sequence< std::shared_ptr< const DependenciesLabel > > paludis::DependenciesLabelSequence
typedef LabelsDepSpec< URILabel > paludis::URILabelsDepSpec
typedef LabelsDepSpec< DependenciesLabel > paludis::DependenciesLabelsDepSpec
typedef Options< PartiallyMadePackageDepSpecOption > paludis::PartiallyMadePackageDepSpecOptions
typedef Options< UserPackageDepSpecOption > paludis::UserPackageDepSpecOptions
typedef Sequence< VersionRequirement > paludis::VersionRequirements

Enumerations

enum  paludis::VersionRequirementsMode { vr_or , paludis::vr_and , paludis::last_vr }

Functions

std::ostream & paludis::operator<< (std::ostream &, const AdditionalPackageDepSpecRequirement &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const URILabel &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const DependenciesLabel &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const PlainTextDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const PackageDepSpec &)
std::ostream & paludis::operator<< (std::ostream &, const URILabelsDepSpec &) PALUDIS_VISIBLE
std::ostream & paludis::operator<< (std::ostream &, const DependenciesLabelsDepSpec &) 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 &)
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))
PartiallyMadePackageDepSpec paludis::make_package_dep_spec (const PartiallyMadePackageDepSpecOptions &) PALUDIS_VISIBLE
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
PackageDepSpec paludis::envless_parse_package_dep_spec_for_tests (const std::string &) 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

◆ AdditionalPackageDepSpecRequirements

A collection of additional requirements for a PackageDepSpec.

Since
0.26

◆ DependenciesBuildLabel

typedef SpecificDependenciesLabel<DependenciesBuildLabelTag> paludis::DependenciesBuildLabel

Dependencies label.

Since
0.42

◆ DependenciesCompileAgainstLabel

typedef SpecificDependenciesLabel<DependenciesCompileAgainstLabelTag> paludis::DependenciesCompileAgainstLabel

Dependencies label.

Since
0.42

◆ DependenciesFetchLabel

typedef SpecificDependenciesLabel<DependenciesFetchLabelTag> paludis::DependenciesFetchLabel

Dependencies label.

Since
0.42

◆ DependenciesInstallLabel

typedef SpecificDependenciesLabel<DependenciesInstallLabelTag> paludis::DependenciesInstallLabel

Dependencies label.

Since
0.42

◆ DependenciesLabelsDepSpec

A DependenciesLabelsDepSpec represents labels in a DependenciesSpecTree.

Since
0.42

◆ DependenciesLabelSequence

A collection of DependencyLabel instances.

Since
0.42

◆ DependenciesPostLabel

typedef SpecificDependenciesLabel<DependenciesPostLabelTag> paludis::DependenciesPostLabel

Dependencies label.

Since
0.42

◆ DependenciesRecommendationLabel

typedef SpecificDependenciesLabel<DependenciesRecommendationLabelTag> paludis::DependenciesRecommendationLabel

Dependencies label.

Since
0.42

◆ DependenciesRunLabel

typedef SpecificDependenciesLabel<DependenciesRunLabelTag> paludis::DependenciesRunLabel

Dependencies label.

Since
0.42

◆ DependenciesSuggestionLabel

typedef SpecificDependenciesLabel<DependenciesSuggestionLabelTag> paludis::DependenciesSuggestionLabel

Dependencies label.

Since
0.42

◆ DependenciesTestLabel

typedef SpecificDependenciesLabel<DependenciesTestLabelTag> paludis::DependenciesTestLabel

Dependencies label.

Since
0.42

◆ PartiallyMadePackageDepSpecOptions

typedef Options<PartiallyMadePackageDepSpecOption> paludis::PartiallyMadePackageDepSpecOptions

◆ URILabelsDepSpec

A URILabelsDepSpec represents labels in a FetchableURISpecTree.

Since
0.26

◆ UserPackageDepSpecOptions

typedef Options<UserPackageDepSpecOption> paludis::UserPackageDepSpecOptions

Options for parse_user_package_dep_spec.

Since
0.26

◆ VersionRequirements

Enumeration Type Documentation

◆ 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

Function Documentation

◆ envless_parse_package_dep_spec_for_tests()

PackageDepSpec paludis::envless_parse_package_dep_spec_for_tests ( const std::string & )

Create a PackageDepSpec from user input, restricted to not having an Environment available.

For use in test cases; should not be used elsewhere.

Since
0.61

References envless_parse_package_dep_spec_for_tests(), and PALUDIS_VISIBLE.

Referenced by envless_parse_package_dep_spec_for_tests().

◆ make_package_dep_spec()

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.

References make_package_dep_spec(), and PALUDIS_VISIBLE.

Referenced by make_package_dep_spec().

◆ operator<<() [1/15]

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

An AdditionalPackageDepSpecRequirement can be written to an ostream.

References PALUDIS_VISIBLE.

◆ operator<<() [2/15]

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

A BlockDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [3/15]

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

A ConditionalDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [4/15]

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

A DependenciesLabel can be written to a stream.

Since
0.42

References PALUDIS_VISIBLE.

◆ operator<<() [5/15]

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

A DependenciesLabelsDepSpec can be written to an ostream.

Since
0.42

References PALUDIS_VISIBLE.

◆ operator<<() [6/15]

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

A FetchableURIDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [7/15]

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

A LicenseDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [8/15]

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

A NamedSetDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [9/15]

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

A PackageDepSpec can be written to an ostream.

References PALUDIS_VISIBLE.

◆ operator<<() [10/15]

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

A PlainTextDepSpec can be written to an ostream.

References PALUDIS_VISIBLE.

◆ operator<<() [11/15]

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

A PlainTextLabelDepSpec can be written to an ostream.

Since
0.32

References PALUDIS_VISIBLE.

◆ operator<<() [12/15]

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

A SimpleURIDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [13/15]

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

A URILabel can be written to a stream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [14/15]

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

A URILabelsDepSpec can be written to an ostream.

Since
0.26

References PALUDIS_VISIBLE.

◆ operator<<() [15/15]

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

Write a VersionRequirementsMode to a stream.

References PALUDIS_VISIBLE.

◆ package_dep_spec_has_properties()

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

References package_dep_spec_has_properties(), PALUDIS_ATTRIBUTE, and PALUDIS_VISIBLE.

Referenced by package_dep_spec_has_properties().

◆ parse_user_package_dep_spec()

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.

References PALUDIS_VISIBLE, and parse_user_package_dep_spec().

Referenced by parse_user_package_dep_spec().

◆ user_version_spec_options()

VersionSpecOptions paludis::user_version_spec_options ( )