Patrick Williams | 92b42cb | 2022-09-03 06:53:57 -0500 | [diff] [blame] | 1 | # |
| 2 | # Copyright OpenEmbedded Contributors |
| 3 | # |
| 4 | # SPDX-License-Identifier: MIT |
| 5 | # |
| 6 | |
| 7 | # |
| 8 | # Recipe needs to set MULTILIB_SCRIPTS in the form <pkgname>:<scriptname>, e.g. |
| 9 | # MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/file1 ${PN}:${base_bindir}/file2" |
| 10 | # to indicate which script files to process from which packages. |
| 11 | # |
| 12 | |
| 13 | inherit update-alternatives |
| 14 | |
| 15 | MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}" |
| 16 | |
| 17 | PACKAGE_PREPROCESS_FUNCS += "multilibscript_rename" |
| 18 | |
| 19 | multilibscript_rename() { |
| 20 | : |
| 21 | } |
| 22 | |
| 23 | python () { |
| 24 | # Do nothing if multilib isn't being used |
| 25 | if not d.getVar("MULTILIB_VARIANTS"): |
| 26 | return |
| 27 | # Do nothing for native/cross |
| 28 | if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d): |
| 29 | return |
| 30 | |
| 31 | for entry in (d.getVar("MULTILIB_SCRIPTS", False) or "").split(): |
| 32 | pkg, script = entry.split(":") |
| 33 | epkg = d.expand(pkg) |
| 34 | scriptname = os.path.basename(script) |
| 35 | d.appendVar("ALTERNATIVE:" + epkg, " " + scriptname + " ") |
| 36 | d.setVarFlag("ALTERNATIVE_LINK_NAME", scriptname, script) |
| 37 | d.setVarFlag("ALTERNATIVE_TARGET", scriptname, script + "-${MULTILIB_SUFFIX}") |
| 38 | d.appendVar("multilibscript_rename", "\n mv ${PKGD}" + script + " ${PKGD}" + script + "-${MULTILIB_SUFFIX}") |
| 39 | d.appendVar("FILES:" + epkg, " " + script + "-${MULTILIB_SUFFIX}") |
| 40 | } |