diff options
-rw-r--r-- | classes/binconfig.bbclass | 10 | ||||
-rw-r--r-- | classes/pkgconfig.bbclass | 28 |
2 files changed, 33 insertions, 5 deletions
diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass index 7011004026..b2545deddd 100644 --- a/classes/binconfig.bbclass +++ b/classes/binconfig.bbclass @@ -5,11 +5,11 @@ def get_binconfig_mangle(d): import bb.data s = "-e ''" if not bb.data.inherits_class('native', d): - s += " -e 's:${libdir}:OELIBDIR:;'" - s += " -e 's:${includedir}:OEINCDIR:;'" - s += " -e 's:${datadir}:OEDATADIR:'" - s += " -e 's:${prefix}:OEPREFIX:'" - s += " -e 's:${exec_prefix}:OEEXECPREFIX:'" + s += " -e 's:=${libdir}:=OELIBDIR:;'" + s += " -e 's:=${includedir}:=OEINCDIR:;'" + s += " -e 's:=${datadir}:=OEDATADIR:'" + s += " -e 's:=${prefix}:=OEPREFIX:'" + s += " -e 's:=${exec_prefix}:=OEEXECPREFIX:'" s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'" s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'" s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'" diff --git a/classes/pkgconfig.bbclass b/classes/pkgconfig.bbclass index e69de29bb2..e89e827fc8 100644 --- a/classes/pkgconfig.bbclass +++ b/classes/pkgconfig.bbclass @@ -0,0 +1,28 @@ +inherit base + +DEPENDS_prepend = "pkgconfig-native " + +# The namespaces can clash here hence the two step replace +def get_pkgconfig_mangle(d): + import bb.data + s = "-e ''" + if not bb.data.inherits_class('native', d): + s += " -e 's:=${libdir}:=OELIBDIR:;'" + s += " -e 's:=${includedir}:=OEINCDIR:;'" + s += " -e 's:=${datadir}:=OEDATADIR:'" + s += " -e 's:=${prefix}:=OEPREFIX:'" + s += " -e 's:=${exec_prefix}:=OEEXECPREFIX:'" + s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'" + s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'" + s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'" + s += " -e 's:OEPREFIX:${STAGING_LIBDIR}/..:'" + s += " -e 's:OEEXECPREFIX:${STAGING_LIBDIR}/..:'" + return s + +do_stage_append () { + for pc in `find ${S} -name '*.pc'`; do + pcname=`basename $pc` + install -d ${PKG_CONFIG_PATH} + cat $pc | sed ${@get_pkgconfig_mangle(d)} > ${PKG_CONFIG_PATH}/$pcname + done +} |