Executing 'bitbake packagegroup-ros-world' shows the warning:
WARNING: QA Issue: collada-dom rdepends on libpcrecpp but its not a build dependency? [build-deps]
On a clean build, 'bitbake collada-dom' fails with:
| Linking CXX shared library libcollada-dom2.4-dp.so
...
| .../build/tmp-eglibc/sysroots/x86_64-linux/usr/libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/4.9.1/ld: external-libs/pcre-8.02/libpcre_local.a(pcre_compile.c.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
| external-libs/pcre-8.02/libpcre_local.a: error adding symbols: Bad value
| collect2: error: ld returned 1 exit status
| make[2]: *** [dom/libcollada-dom2.4-dp.so.2.4.0] Error 1
This commits adds libpcre as dependency, and resolves the issue.
Poco comes with bundled versions of SQLite3, zlib, expat, etc.
Adding the ``-DPOCO_UNBUNDLED=On`` option to CMake makes it use the ones provided by OE.
The qhull library is shipped under its own license. We add this
special license file in our layer in the directory licenses and
register this license directory in our layer configuration.
When compiling pcl-ros, bitbake aborts because for compiling the
Crypto library in libpoco, it needs the openssl headers.
The condensed error output is
** Compiling src/CipherKeyImpl.cpp (debug, shared)
arm-oe-linux-gnueabi-g++ -march=armv5te -marm -mthumb-interwork
-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
--sysroot=/home/lukas/oe-core/build/tmp-eglibc/sysroots/qemuarm
-I ... -DPOCO_BUILD_HOST=host -DPOCO_NO_WSTRING -DPOCO_UNBUNDLED
-D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_REENTRANT -D_THREAD_SAFE
-DPOCO_NO_FPENVIRONMENT -g -D_DEBUG -fPIC -c src/CipherKeyImpl.cpp
-o ...
In file included from include/Poco/Crypto/CipherKeyImpl.h:44:0,
from include/Poco/Crypto/CipherKey.h:44,
from src/CipherKey.cpp:37:
include/Poco/Crypto/OpenSSLInitializer.h:45:33: fatal error: openssl/opensslconf.h: No such file or directory
#include <openssl/opensslconf.h>
^
compilation terminated.
In file included from include/Poco/Crypto/CipherKeyImpl.h:44:0,
from src/CipherKeyImpl.cpp:37:
include/Poco/Crypto/OpenSSLInitializer.h:45:33: fatal error: openssl/opensslconf.h: No such file or directory
#include <openssl/opensslconf.h>
^
compilation terminated.
make[1]: *** [.../tmp-eglibc/work/armv5te-oe-linux-gnueabi/libpoco/1.4.6p1-r0/poco-1.4.6p1-all/Crypto/obj/Linux/armv5te/debug_shared/CipherKey.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make -C /home/lukas/oe-core/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/libpoco/1.4.6p1-r0/poco-1.4.6p1-all/Util
make[1]: *** [.../tmp-eglibc/work/armv5te-oe-linux-gnueabi/libpoco/1.4.6p1-r0/poco-1.4.6p1-all/Crypto/obj/Linux/armv5te/debug_shared/CipherKeyImpl.o] Error 1
make[1]: Entering directory `/home/lukas/oe-core/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/libpoco/1.4.6p1-r0/poco-1.4.6p1-all/Util'
This commit formats the libpoco recipe to follow the common
OpenEmbedded style more closely and removes a comment that points
to warnings that do not occur with the current recipe.