diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/distrooverrides.bbclass | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/classes/distrooverrides.bbclass b/meta/classes/distrooverrides.bbclass new file mode 100644 index 0000000000..9a42712f20 --- /dev/null +++ b/meta/classes/distrooverrides.bbclass | |||
@@ -0,0 +1,32 @@ | |||
1 | # Turns certain DISTRO_FEATURES into overrides with the same | ||
2 | # name plus a df- prefix. Ensures that these special | ||
3 | # distro features remain set also for native and nativesdk | ||
4 | # recipes, so that these overrides can also be used there. | ||
5 | # | ||
6 | # This makes it simpler to write .bbappends that only change the | ||
7 | # task signatures of the recipe if the change is really enabled, | ||
8 | # for example with: | ||
9 | # do_install_append_df-my-feature () { ... } | ||
10 | # where "my-feature" is a DISTRO_FEATURE. | ||
11 | # | ||
12 | # The class is meant to be used in a layer.conf or distro | ||
13 | # .inc file with: | ||
14 | # INHERIT += "distrooverrides" | ||
15 | # DISTRO_FEATURES_OVERRIDES += "my-feature" | ||
16 | # | ||
17 | # Beware that this part of OVERRIDES changes during parsing, so usage | ||
18 | # of these overrides should be limited to .bb and .bbappend files, | ||
19 | # because then DISTRO_FEATURES is final. | ||
20 | |||
21 | DISTRO_FEATURE_OVERRIDES ?= "" | ||
22 | DISTRO_FEATURE_OVERRIDES[doc] = "A space-separated list of <feature> entries. \ | ||
23 | Each entry is added to OVERRIDES as df-<feature> if <feature> is in DISTRO_FEATURES." | ||
24 | |||
25 | DISTRO_FEATURES_FILTER_NATIVE_append = " ${DISTRO_FEATURES_OVERRIDES}" | ||
26 | DISTRO_FEATURES_FILTER_NATIVESDK_append = " ${DISTRO_FEATURES_OVERRIDES}" | ||
27 | |||
28 | # If DISTRO_FEATURES_OVERRIDES or DISTRO_FEATURES show up in a task | ||
29 | # signature because of this line, then the task dependency on | ||
30 | # OVERRIDES itself should be fixed. Excluding these two variables | ||
31 | # with DISTROOVERRIDES[vardepsexclude] would just work around the problem. | ||
32 | DISTROOVERRIDES .= "${@ ''.join([':df-' + x for x in sorted(set(d.getVar('DISTRO_FEATURES_OVERRIDES').split()) & set((d.getVar('DISTRO_FEATURES') or '').split()))]) }" | ||