From 02582cf1a0c2f00864f5e03bf5749b15af1d635d Mon Sep 17 00:00:00 2001 From: Lukas Bulwahn Date: Mon, 19 Sep 2016 07:58:38 +0200 Subject: [PATCH] poco: use meta-oe's recipe instead of own one The meta-oe provides since commit 8700ba38@openembedded/meta-openembedded (commit date: 2016-01-14) [1] a recipe for the POCO C++ Library. Consequently, this commit removes the libpoco recipe in the meta-ros layer. As meta-ros already depends on the meta-oe layer, the poco recipe is available in release version since 2016-01-14, and the poco recipe in meta-ros is redundant for these versions. However, this commit still provides the currently latest poco recipe [2] for users that are not using a recent version of the meta-oe layer. [1] http://cgit.openembedded.org/meta-openembedded/commit?id=8700ba38804af3c27f3662737f679afa1bdc86da [2] http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/poco?id=0a2bd4f9784253a8a8dda35e3c4dbd75931d3564 Signed-off-by: Lukas Bulwahn --- README.md | 6 +- ...e482d71f327020efa10b873b9623458f2985.patch | 24 ---- recipes-extended/libpoco/libpoco_1.5.3.bb | 18 --- .../class-loader/class-loader_0.3.4.bb | 2 +- recipes-support/poco/poco/run-ptest | 9 ++ recipes-support/poco/poco_1.7.4.bb | 105 ++++++++++++++++++ 6 files changed, 118 insertions(+), 46 deletions(-) delete mode 100644 recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch delete mode 100644 recipes-extended/libpoco/libpoco_1.5.3.bb create mode 100644 recipes-support/poco/poco/run-ptest create mode 100644 recipes-support/poco/poco_1.7.4.bb diff --git a/README.md b/README.md index 82cdf0a..36e9f93 100644 --- a/README.md +++ b/README.md @@ -226,9 +226,9 @@ Currently, this layer is still under continuous development. (cf. https://github.com/kartikmohta/meta-km/blob/master/recipes-devtools/yaml-cpp/yaml-cpp_0.3.0.bb) licensed with the MIT License. - The libpoco recipe originated from the recipe in digitalSTROM's OpenEmbedded layer - (cf. https://gitorious.digitalstrom.org/dss-oe/dss-oe/blobs/master/dS/meta-dss11-production/recipes-support/poco/poco_1.3.6p2.bb) - licensed with the MIT License. + The poco recipe is a copy of the poco recipe in the meta-oe layer licensed with the MIT License + (cf. http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-support/poco). + The recipe is included in the meta-ros layer to support the use of older versions of the meta-oe layer. The core-image-ros-* recipes originated from the core-image-minimal recipe in OpenEmbedded Core (cf. http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/images/core-image-minimal.bb) diff --git a/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch b/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch deleted file mode 100644 index 83a7b14..0000000 --- a/recipes-extended/libpoco/libpoco/9258e482d71f327020efa10b873b9623458f2985.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9258e482d71f327020efa10b873b9623458f2985 Mon Sep 17 00:00:00 2001 -From: Aleksandar Fabijanic -Date: Tue, 29 Jul 2014 10:46:52 -0500 -Subject: [PATCH] GH #508: Can't compile for arm64 architecture - -Upstream-Status: Backport [from version 1.5.4] ---- - Foundation/src/utils.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h -index dbd61a3..a25757c 100644 ---- a/Foundation/src/utils.h -+++ b/Foundation/src/utils.h -@@ -59,7 +59,8 @@ - defined(__mips__) || defined(__powerpc__) || \ - defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ - defined(__SH4__) || defined(__alpha__) || \ -- defined(_MIPS_ARCH_MIPS32R2) -+ defined(_MIPS_ARCH_MIPS32R2) || \ -+ defined(__AARCH64EL__) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) - #if defined(_WIN32) diff --git a/recipes-extended/libpoco/libpoco_1.5.3.bb b/recipes-extended/libpoco/libpoco_1.5.3.bb deleted file mode 100644 index d8699b1..0000000 --- a/recipes-extended/libpoco/libpoco_1.5.3.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "POCO C++ Libraries" -HOMEPAGE = "http://pocoproject.org" -LICENSE = "BSL-1.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc" - -DEPENDS = "expat zlib libpcre openssl" - -SRC_URI = "https://github.com/pocoproject/poco/archive/poco-${PV}-release.tar.gz" -SRC_URI[md5sum] = "4636d84055a434fde3a67396bf15924a" -SRC_URI[sha256sum] = "f26bbd7879ad79b45630f8efa20b1c65f0ddf81dc44f169245d512d208c71e53" - -SRC_URI += "file://9258e482d71f327020efa10b873b9623458f2985.patch" - -S = "${WORKDIR}/poco-poco-${PV}-release" - -EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release -DPOCO_UNBUNDLED=On" - -inherit cmake diff --git a/recipes-ros/class-loader/class-loader_0.3.4.bb b/recipes-ros/class-loader/class-loader_0.3.4.bb index 527e453..1e1d60c 100644 --- a/recipes-ros/class-loader/class-loader_0.3.4.bb +++ b/recipes-ros/class-loader/class-loader_0.3.4.bb @@ -8,7 +8,7 @@ SECTION = "devel" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://package.xml;beginline=9;endline=9;md5=d566ef916e9dedc494f5f793a6690ba5" -DEPENDS = "cmake-modules console-bridge libpoco" +DEPENDS = "cmake-modules console-bridge poco" SRC_URI = "https://github.com/ros/${ROS_SPN}/archive/${PV}.tar.gz;downloadfilename=${ROS_SP}.tar.gz" SRC_URI[md5sum] = "3fb8bbc0273a613fcc519bdf549fcab6" diff --git a/recipes-support/poco/poco/run-ptest b/recipes-support/poco/poco/run-ptest new file mode 100644 index 0000000..c479f7a --- /dev/null +++ b/recipes-support/poco/poco/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh +while read runner; do + pushd . >/dev/null + cd bin + echo Testing $runner + ./$runner-testrunner -all + popd >/dev/null +done < testrunners + diff --git a/recipes-support/poco/poco_1.7.4.bb b/recipes-support/poco/poco_1.7.4.bb new file mode 100644 index 0000000..e7a279f --- /dev/null +++ b/recipes-support/poco/poco_1.7.4.bb @@ -0,0 +1,105 @@ +SUMMARY = "Modern, powerful open source cross-platform C++ class libraries" +DESCRIPTION = "Modern, powerful open source C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems." +SECTION = "libs" +HOMEPAGE = "http://pocoproject.org/" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4267f48fc738f50380cbeeb76f95cebc" + +# These dependencies are required by Foundation +DEPENDS = "libpcre zlib" + +inherit cmake ptest + +BBCLASSEXTEND = "native" + +SRCREV = "da66f2863aa02c11967862f2d9f0251574a5e9c2" +SRC_URI = " \ + git://github.com/pocoproject/poco.git \ + file://run-ptest \ + " + +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=RelWithDebInfo -DPOCO_UNBUNDLED=ON \ + ${@bb.utils.contains('PTEST_ENABLED', '1', '-DENABLE_TESTS=ON ', '', d)}" + +# For the native build we want to use the bundled version +EXTRA_OECMAKE_append_class-native = " -DPOCO_UNBUNDLED=OFF" + +# do not use rpath +EXTRA_OECMAKE_append = " -DCMAKE_SKIP_RPATH=ON" + +# By default the most commonly used poco components are built +# Foundation is built anyway and doesn't need to be listed explicitly +# these don't have dependencies outside oe-core +PACKAGECONFIG ??= "XML JSON MongoDB PDF Util Net NetSSL Crypto Data DataSQLite Zip" + +PACKAGECONFIG[XML] = "-DENABLE_XML=ON,-DENABLE_XML=OFF,expat" +PACKAGECONFIG[JSON] = "-DENABLE_JSON=ON,-DENABLE_JSON=OFF" +PACKAGECONFIG[MongoDB] = "-DENABLE_MONGODB=ON,-DENABLE_MONGODB=OFF" +PACKAGECONFIG[PDF] = "-DENABLE_PDF=ON,-DENABLE_PDF=OFF,zlib" +PACKAGECONFIG[Util] = "-DENABLE_UTIL=ON,-DENABLE_UTIL=OFF" +PACKAGECONFIG[Net] = "-DENABLE_NET=ON,-DENABLE_NET=OFF" +PACKAGECONFIG[NetSSL] = "-DENABLE_NETSSL=ON,-DENABLE_NETSSL=OFF,openssl" +PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON,-DENABLE_CRYPTO=OFF,openssl" +PACKAGECONFIG[Data] = "-DENABLE_DATA=ON,-DENABLE_DATA=OFF" +PACKAGECONFIG[DataSQLite] = "-DENABLE_DATA_SQLITE=ON,-DENABLE_DATA_SQLITE=OFF,sqlite3" +PACKAGECONFIG[Zip] = "-DENABLE_ZIP=ON,-DENABLE_ZIP=OFF" + +# Additional components not build by default, +# they might have dependencies not included in oe-core +# or they don't work on all architectures +PACKAGECONFIG[mod_poco] = "-DENABLE_APACHECONNECTOR=ON,-DENABLE_APACHECONNECTOR=OFF,apr apache2" +PACKAGECONFIG[CppParser] = "-DENABLE_CPPPARSER=ON,-DENABLE_CPPPARSER=OFF" +PACKAGECONFIG[DataMySQL] = "-DENABLE_DATA_MYSQL=ON,-DENABLE_DATA_MYSQL=OFF,mariadb" +PACKAGECONFIG[DataODBC] = "-DENABLE_DATA_ODBC=ON,-DENABLE_DATA_ODBC=OFF,libiodbc" +PACKAGECONFIG[PageCompiler] = "-DENABLE_PAGECOMPILER=ON,-DENABLE_PAGECOMPILER=OFF" +PACKAGECONFIG[PageCompilerFile2Page] = "-DENABLE_PAGECOMPILER_FILE2PAGE=ON,-DENABLE_PAGECOMPILER_FILE2PAGE=OFF" +PACKAGECONFIG[SevenZip] = "-DENABLE_SEVENZIP=ON,-DENABLE_SEVENZIP=OFF" + +# Make a package for each library +PACKAGES = "${PN}-dbg ${POCO_PACKAGES}" +python __anonymous () { + packages = [] + testrunners = [] + components = d.getVar("PACKAGECONFIG", True).split() + components.append("Foundation") + for lib in components: + pkg = ("poco-%s" % lib.lower()).replace("_","") + packages.append(pkg) + if not d.getVar("FILES_%s" % pkg, True): + d.setVar("FILES_%s" % pkg, "${libdir}/libPoco%s.so.*" % lib) + testrunners.append("%s" % lib) + + d.setVar("POCO_PACKAGES", " ".join(packages)) + d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners)) +} + +# "poco" is a metapackage which pulls in all Poco components +PACKAGES += "${PN}" +RRECOMMENDS_${PN} += "${POCO_PACKAGES}" +RRECOMMENDS_${PN}_class-native = "" +ALLOW_EMPTY_${PN} = "1" + +# -dev last to pick up the remaining stuff +PACKAGES += "${PN}-dev ${PN}-staticdev" +FILES_${PN}-dev = "${includedir} ${libdir}/libPoco*.so ${libdir}/cmake" +FILES_${PN}-staticdev = "${libdir}/libPoco*.a" + +# ptest support +FILES_${PN}-dbg += "${PTEST_PATH}/bin/.debug" + +# cppunit is only built if tests are enabled +PACKAGES += "${PN}-cppunit" +FILES_${PN}-cppunit += "${libdir}/libCppUnit.so*" +ALLOW_EMPTY_${PN}-cppunit = "1" + +RDEPENDS_${PN}-ptest += "${PN}-cppunit" + +do_install_ptest () { + cp -rf ${B}/bin/ ${D}${PTEST_PATH} + cp -f ${B}/lib/libCppUnit.so* ${D}${libdir} + cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/ + find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \; + echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners" +}