attr: Convert SSTATEPOSTINSTFUNCS to a do_install_append

A SSTATEPOSTINSTFUNCS function here is overkill, just do this in a
do_install_append_class-native and create relative symlinks rather
than absolute ones which would then have to be relocated.

(From OE-Core rev: 518e8d0216b0f42f574e42288804f553b9ff6f99)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2016-12-07 12:07:31 +00:00
parent 53c9723ea8
commit ace9e1d371
1 changed files with 22 additions and 25 deletions

View File

@ -17,6 +17,28 @@ do_install () {
oe_runmake install install-lib install-dev DIST_ROOT="${D}"
}
do_install_append_class-native () {
if test "${libdir}" = "${base_libdir}" ; then
return
fi
librelpath=${@os.path.relpath(d.getVar('libdir',True), d.getVar('base_libdir', True))}
baselibrelpath=${@os.path.relpath(d.getVar('base_libdir',True), d.getVar('libdir', True))}
# Remove bad symlinks & create the correct symlinks
if test -L ${D}${libdir}/lib${BPN}.so ; then
rm -rf ${D}${libdir}/lib${BPN}.so
ln -sf $baselibrelpath/lib${BPN}.so ${D}${libdir}/lib${BPN}.so
fi
if test -L ${D}${base_libdir}/lib${BPN}.a ; then
rm -rf ${D}${base_libdir}/lib${BPN}.a
ln -sf $librelpath/lib${BPN}.a ${D}${base_libdir}/lib${BPN}.a
fi
if test -L ${D}${base_libdir}/lib${BPN}.la ; then
rm -rf ${D}${base_libdir}/lib${BPN}.la
ln -sf $librelpath/lib${BPN}.la ${D}${base_libdir}/lib${BPN}.la
fi
}
PACKAGES =+ "lib${BPN}"
FILES_lib${BPN} = "${base_libdir}/lib*${SOLIBS}"
@ -25,28 +47,3 @@ BBCLASSEXTEND = "native"
# Only append ldflags for target recipe and if USE_NLS is enabled
LDFLAGS_append_libc-uclibc_class-target = "${@['', ' -lintl '][(d.getVar('USE_NLS', True) == 'yes')]}"
EXTRA_OECONF_append_libc-uclibc_class-target = "${@['', ' --disable-gettext '][(d.getVar('USE_NLS', True) == 'no')]}"
fix_symlink () {
if [ "${BB_CURRENTTASK}" != "populate_sysroot" -a "${BB_CURRENTTASK}" != "populate_sysroot_setscene" ]
then
return
fi
if test "${libdir}" = "${base_libdir}" ; then
return
fi
# Remove bad symlinks & create the correct symlinks
if test -L ${libdir}/lib${BPN}.so ; then
rm -rf ${libdir}/lib${BPN}.so
ln -sf ${base_libdir}/lib${BPN}.so ${libdir}/lib${BPN}.so
fi
if test -L ${base_libdir}/lib${BPN}.a ; then
rm -rf ${base_libdir}/lib${BPN}.a
ln -sf ${libdir}/lib${BPN}.a ${base_libdir}/lib${BPN}.a
fi
if test -L ${base_libdir}/lib${BPN}.la ; then
rm -rf ${base_libdir}/lib${BPN}.la
ln -sf ${libdir}/lib${BPN}.la ${base_libdir}/lib${BPN}.la
fi
}
SSTATEPOSTINSTFUNCS_class-native += "fix_symlink"