[oe] [meta-oe][PATCH] libtinyxml2: Add packageconfig support

Andre McCurdy armccurdy at gmail.com
Thu Mar 31 18:51:22 UTC 2016


On Thu, Mar 31, 2016 at 11:37 AM, Andre McCurdy <armccurdy at gmail.com> wrote:
> On Thu, Mar 31, 2016 at 10:17 AM, Khem Raj <raj.khem at gmail.com> wrote:
>> Some package enquire using pkgconfig
>>
>> Change-Id: I4b7ac35930caf25b8ca04c3f5b34a193d4ed4a3d
>> Signed-off-by: Khem Raj <raj.khem at gmail.com>
>> ---
>>  .../libtinyxml2/libtinyxml2/libtinyxml2.pc         | 10 +++++++++
>>  .../recipes-support/libtinyxml2/libtinyxml2_git.bb | 26 +++++++++++++---------
>>  2 files changed, 26 insertions(+), 10 deletions(-)
>>  create mode 100644 meta-oe/recipes-support/libtinyxml2/libtinyxml2/libtinyxml2.pc
>>
>> diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2/libtinyxml2.pc b/meta-oe/recipes-support/libtinyxml2/libtinyxml2/libtinyxml2.pc
>> new file mode 100644
>> index 0000000..ef155a1
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2/libtinyxml2.pc
>> @@ -0,0 +1,10 @@
>> +prefix=/usr
>> +exec_prefix=${prefix}
>> +libdir=${exec_prefix}/lib
>> +includedir=${prefix}/include
>> +
>> +Name: TinyXml2
>> +Description: simple, small, C++ XML parser
>> +Version: 2.2.0
>> +Libs: -L${libdir} -ltinyxml2
>> +Cflags: -I${includedir}
>> diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb
>> index 6ca6f7c..e1760e4 100644
>> --- a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb
>> +++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_git.bb
>> @@ -6,9 +6,13 @@ SECTION = "libs"
>>
>>  SRCREV = "d211bb13512cf4edb408e2c4badbcf4100ce0fd0"
>>
>> -PV = "2.2.0+git${SRCPV}"
>> +XML2VER = "2.2.0"
>>
>> -SRC_URI = "git://github.com/leethomason/tinyxml2.git"
>> +PV = "${XML2VER}+git${SRCPV}"
>> +
>> +SRC_URI = "git://github.com/leethomason/tinyxml2.git \
>> +           file://libtinyxml2.pc \
>> +          "
>>
>>  S = "${WORKDIR}/git"
>>
>> @@ -17,21 +21,23 @@ EXTRA_CXXFLAGS = "-I. -fPIC"
>>  do_compile() {
>>      ${CXX} ${CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o tinyxml2.o tinyxml2.cpp
>>      ${CXX} ${CXXFLAGS} \
>> -            -shared \
>> -            -Wl,-soname,libtinyxml2.so.${PV} \
>> -            -o libtinyxml2.so.${PV} \
>> -            ${LDFLAGS} \
>> -            tinyxml2.o
>> +        -shared \
>> +        -Wl,-soname,libtinyxml2.so.${XML2VER} \
>> +        -o libtinyxml2.so.${XML2VER} \
>> +        ${LDFLAGS} \
>> +        tinyxml2.o
>> +
>>  }
>>
>>  do_install() {
>>      install -d ${D}${libdir}
>> -    install -m 0755 ${S}/libtinyxml2.so.${PV} ${D}${libdir}
>> -    ln -sf libtinyxml2.so.${PV} ${D}${libdir}/libtinyxml2.so
>> +    install -m 0644 ${S}/libtinyxml2.so.${XML2VER} ${D}${libdir}
>> +    ln -sf libtinyxml2.so.${XML2VER} ${D}${libdir}/libtinyxml2.so
>> +    ln -sf libtinyxml2.so.${XML2VER} ${D}${libdir}/libtinyxml2.so.2
>
> Either set soname to libtinyxml2.so.2 or drop the libtinyxml2.so.2 symlink.

Or even better, drop all the custom tasks and just inherit cmake. It
looks like you'll get correct library versioning and a pkgconfig file
for free :-)

>>
>>      install -d ${D}${includedir}
>>      install -m 0644 ${S}/tinyxml2.h ${D}${includedir}
>> +    install -Dm644 ${WORKDIR}/libtinyxml2.pc ${D}${libdir}/pkgconfig/libtinyxml2.pc
>>  }
>>
>>  BBCLASSEXTEND += "native"
>> -
>> --
>> 1.9.1
>>
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list