aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-12 19:45:23 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2011-04-12 19:45:23 +0100
commit15a7c5731bb389c53cca09d4389c34f887524ba2 (patch)
tree24374c6330705c8b449338da1ebf69eaa159118c
parentbc9513ea121b5f4f7486495b020e2acde57e5133 (diff)
downloadpaludis-15a7c5731bb389c53cca09d4389c34f887524ba2.tar.gz
paludis-15a7c5731bb389c53cca09d4389c34f887524ba2.tar.xz
Support implicit annotation
-rw-r--r--paludis/dep_spec_annotations.cc1
-rw-r--r--paludis/dep_spec_annotations.se2
-rw-r--r--paludis/repositories/e/eapi.cc3
-rw-r--r--paludis/repositories/e/eapi.hh2
-rw-r--r--paludis/repositories/e/eapis/exheres-0.conf1
-rw-r--r--paludis/repositories/e/parse_annotations.cc7
6 files changed, 15 insertions, 1 deletions
diff --git a/paludis/dep_spec_annotations.cc b/paludis/dep_spec_annotations.cc
index 6830513..6fa9242 100644
--- a/paludis/dep_spec_annotations.cc
+++ b/paludis/dep_spec_annotations.cc
@@ -134,6 +134,7 @@ paludis::find_blocker_role_in_annotations(
case dsar_myoptions_n_at_most_one:
case dsar_myoptions_n_exactly_one:
case dsar_suggestions_group_name:
+ case dsar_system_implicit:
break;
case last_dsar:
diff --git a/paludis/dep_spec_annotations.se b/paludis/dep_spec_annotations.se
index 82f67d5..35aa0e7 100644
--- a/paludis/dep_spec_annotations.se
+++ b/paludis/dep_spec_annotations.se
@@ -31,6 +31,8 @@ make_enum_DepSpecAnnotationRole()
key dsar_suggestions_group_name "Group name for suggestions"
+ key dsar_system_implicit "For system, whether a spec is an implicit dependency"
+
want_destringify
doxygen_comment << "END"
diff --git a/paludis/repositories/e/eapi.cc b/paludis/repositories/e/eapi.cc
index a7c8d0b..ed00a9b 100644
--- a/paludis/repositories/e/eapi.cc
+++ b/paludis/repositories/e/eapi.cc
@@ -272,7 +272,8 @@ namespace
n::myoptions_number_selected_at_most_one() = k.get("annotations_myoptions_number_selected_at_most_one"),
n::myoptions_number_selected_exactly_one() = k.get("annotations_myoptions_number_selected_exactly_one"),
n::myoptions_requires() = k.get("annotations_myoptions_requires"),
- n::suggestions_group_name() = k.get("annotations_suggesions_group_name")
+ n::suggestions_group_name() = k.get("annotations_suggesions_group_name"),
+ n::system_implicit() = k.get("system_implicit")
));
}
diff --git a/paludis/repositories/e/eapi.hh b/paludis/repositories/e/eapi.hh
index a40398a..1e9a87d 100644
--- a/paludis/repositories/e/eapi.hh
+++ b/paludis/repositories/e/eapi.hh
@@ -197,6 +197,7 @@ namespace paludis
typedef Name<struct name_support_eclasses> support_eclasses;
typedef Name<struct name_support_exlibs> support_exlibs;
typedef Name<struct name_supported> supported;
+ typedef Name<struct name_system_implicit> system_implicit;
typedef Name<struct name_tools_options> tools_options;
typedef Name<struct name_unpack_fix_permissions> unpack_fix_permissions;
typedef Name<struct name_unpack_suffixes> unpack_suffixes;
@@ -499,6 +500,7 @@ namespace paludis
NamedValue<n::myoptions_number_selected_exactly_one, std::string> myoptions_number_selected_exactly_one;
NamedValue<n::myoptions_requires, std::string> myoptions_requires;
NamedValue<n::suggestions_group_name, std::string> suggestions_group_name;
+ NamedValue<n::system_implicit, std::string> system_implicit;
};
}
}
diff --git a/paludis/repositories/e/eapis/exheres-0.conf b/paludis/repositories/e/eapis/exheres-0.conf
index 25907fb..d172a95 100644
--- a/paludis/repositories/e/eapis/exheres-0.conf
+++ b/paludis/repositories/e/eapis/exheres-0.conf
@@ -372,4 +372,5 @@ annotations_myoptions_number_selected_at_least_one = at-least-one
annotations_myoptions_number_selected_at_most_one = at-most-one
annotations_myoptions_number_selected_exactly_one = exactly-one
annotations_suggesions_group_name = group-name
+annotations_system_implicit = implicit
diff --git a/paludis/repositories/e/parse_annotations.cc b/paludis/repositories/e/parse_annotations.cc
index 66e5e55..370a035 100644
--- a/paludis/repositories/e/parse_annotations.cc
+++ b/paludis/repositories/e/parse_annotations.cc
@@ -107,6 +107,13 @@ paludis::erepository::parse_annotations(
role = dsar_suggestions_group_name;
}
+ /* system */
+ if (dsar_none == role)
+ {
+ if (key == eapi.supported()->annotations()->system_implicit())
+ role = dsar_system_implicit;
+ }
+
/* general */
if (dsar_none == role)
{