relocatable: Make native .pc files relocatable

The native .pc files currently have hardcoded paths in them meaning each has
to be relocated at final install time. pkg-config has built in functionality
to avoid this, namely the pcfiledir variable.

This function translates .pc files to use the variable meaning further
relocation later is unnecessary.

(From OE-Core rev: a3f4e9ff55c7d9eba175e83eb6c99cf349a74432)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2017-01-30 23:08:38 +00:00
parent 2bb0b1d9b5
commit e9256edb33
1 changed files with 12 additions and 1 deletions

View File

@ -1,7 +1,18 @@
inherit chrpath
SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess"
SYSROOT_PREPROCESS_FUNCS += "relocatable_binaries_preprocess relocatable_native_pcfiles"
python relocatable_binaries_preprocess() {
rpath_replace(d.expand('${SYSROOT_DESTDIR}'), d)
}
relocatable_native_pcfiles () {
if [ -d ${SYSROOT_DESTDIR}${libdir}/pkgconfig ]; then
rel=${@os.path.relpath(d.getVar('base_prefix'), d.getVar('libdir') + "/pkgconfig")}
sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" ${SYSROOT_DESTDIR}${libdir}/pkgconfig/*.pc
fi
if [ -d ${SYSROOT_DESTDIR}${datadir}/pkgconfig ]; then
rel=${@os.path.relpath(d.getVar('base_prefix'), d.getVar('datadir') + "/pkgconfig")}
sed -i -e "s:${base_prefix}:\${pcfiledir}/$rel:g" ${SYSROOT_DESTDIR}${datadir}/pkgconfig/*.pc
fi
}