| Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 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_FEATURES_OVERRIDES ?= "" | 
|  | 22 | DISTRO_FEATURES_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()))]) }" |