diff options
-rw-r--r-- | meta/classes-recipe/native.bbclass | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/meta/classes-recipe/native.bbclass b/meta/classes-recipe/native.bbclass index d9651a7f22..1d9432138e 100644 --- a/meta/classes-recipe/native.bbclass +++ b/meta/classes-recipe/native.bbclass | |||
@@ -119,6 +119,7 @@ SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" | |||
119 | INHIBIT_SYSROOT_STRIP ?= "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}" | 119 | INHIBIT_SYSROOT_STRIP ?= "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}" |
120 | 120 | ||
121 | python native_virtclass_handler () { | 121 | python native_virtclass_handler () { |
122 | import re | ||
122 | pn = e.data.getVar("PN") | 123 | pn = e.data.getVar("PN") |
123 | if not pn.endswith("-native"): | 124 | if not pn.endswith("-native"): |
124 | return | 125 | return |
@@ -158,10 +159,20 @@ python native_virtclass_handler () { | |||
158 | newdeps.append(dep.replace(pn, bpn) + "-native") | 159 | newdeps.append(dep.replace(pn, bpn) + "-native") |
159 | else: | 160 | else: |
160 | newdeps.append(dep) | 161 | newdeps.append(dep) |
161 | d.setVar(varname, " ".join(newdeps)) | 162 | output_varname = varname |
163 | # Handle ${PN}-xxx -> ${BPN}-xxx-native | ||
164 | if suffix != "${PN}" and "${PN}" in suffix: | ||
165 | output_varname = varname.replace("${PN}", "${BPN}") + "-native" | ||
166 | d.renameVar(varname, output_varname) | ||
167 | d.setVar(output_varname, " ".join(newdeps)) | ||
162 | 168 | ||
163 | map_dependencies("DEPENDS", e.data, selfref=False) | 169 | map_dependencies("DEPENDS", e.data, selfref=False) |
164 | for pkg in e.data.getVar("PACKAGES", False).split(): | 170 | # We need to handle things like ${@bb.utils.contains('PTEST_ENABLED', '1', '${PN}-ptest', '', d)} |
171 | # and not pass ${PN}-test since in the native case it would be ignored. This does mean we ignore | ||
172 | # anonymous python derived PACKAGES entries. | ||
173 | for pkg in re.split(r"\${@(?:{.*?}|.)+?}|\s", d.getVar("PACKAGES", False)): | ||
174 | if not pkg: | ||
175 | continue | ||
165 | map_dependencies("RDEPENDS", e.data, pkg) | 176 | map_dependencies("RDEPENDS", e.data, pkg) |
166 | map_dependencies("RRECOMMENDS", e.data, pkg) | 177 | map_dependencies("RRECOMMENDS", e.data, pkg) |
167 | map_dependencies("RSUGGESTS", e.data, pkg) | 178 | map_dependencies("RSUGGESTS", e.data, pkg) |