[oe] [meta-oe][PATCH] Introduce recipes for sdbus-c++ library and its tools

Stefan Herbrechtsmeier stefan at herbrechtsmeier.net
Tue Jul 23 19:25:28 UTC 2019


Hi Khem,

Am 22.07.19 um 23:18 schrieb Khem Raj:
> From: sangelovic <angelovic.s at gmail.com>
> 
> ---
>   .../sdbus-c++/sdbus-c++-0.7.2/run-ptest       | 15 ++++++
>   .../sdbus-c++/sdbus-c++-tools-native_0.7.2.bb | 14 ++++++
>   .../recipes-core/sdbus-c++/sdbus-c++_0.7.2.bb | 49 +++++++++++++++++++
>   3 files changed, 78 insertions(+)
>   create mode 100644 meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.2/run-ptest
>   create mode 100644 meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.2.bb
>   create mode 100644 meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.2.bb
> 
> diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.2/run-ptest b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.2/run-ptest
> new file mode 100644
> index 0000000000..8fa9453e39
> --- /dev/null
> +++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-0.7.2/run-ptest
> @@ -0,0 +1,15 @@
> +#!/bin/sh
> +set -e
> +set -o pipefail
> +
> +logger "** Starting sdbus-c++-unit-tests"
> +/opt/test/bin/sdbus-c++-unit-tests --gtest_output=xml:/data/ptest/sdbus-c++/sdbus-c++-unit-tests.xml |& \
> +sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
> +sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
> +awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
> +
> +logger "** Starting sdbus-c++-integration-tests"
> +/opt/test/bin/sdbus-c++-integration-tests --gtest_output=xml:/data/ptest/sdbus-c++/sdbus-c++-integration-tests.xml |& \
> +sed -r 's/^\[\s+OK\s+\] (.*) \([0-9]+\sms\)$/OK: \1 /' | \
> +sed -r 's/^\[\s+FAILED\s+\] (.*) \([0-9]+\sms\)$/FAILED: \1 /' | \
> +awk '{if ($1 == "OK:" || $1 == "FAILED:") {print $0}}'
> diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.2.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.2.bb
> new file mode 100644
> index 0000000000..e319404f49
> --- /dev/null
> +++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools-native_0.7.2.bb
> @@ -0,0 +1,14 @@
> +SUMMARY = "sdbus-c++ native tools"
> +DESCRIPTION = "Native interface code generator for development with sdbus-c++"
> +
> +LICENSE = "LGPLv2.1"
> +LIC_FILES_CHKSUM = "file://${WORKDIR}/git-tools/COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
Why you need the "${WORKDIR}/git-tools"?

> +
> +inherit cmake native
> +
> +DEPENDS += "expat"
> +
> +SRCREV = "750dab39270f338181db8d841cd4b1a9a50ae4d7"
> +SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;destsuffix=git-tools;branch=master;subpath=tools"
> +
> +S = "${WORKDIR}/git-tools"
Why don't you use "${WORKDIR}/git" and skip the destsuffix in SRC_URI?

> diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.2.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.2.bb
> new file mode 100644
> index 0000000000..457f5d676a
> --- /dev/null
> +++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_0.7.2.bb
> @@ -0,0 +1,49 @@
> +SUMMARY = "sdbus-c++"
> +DESCRIPTION = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API in modern C++"
> +
> +SECTION = "libs"
> +
> +LICENSE = "LGPLv2.1"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=1803fa9c2c3ce8cb06b4861d75310742"
> +
> +inherit cmake pkgconfig systemd ptest python3native
> +
> +TEST_BIN_DIR = "/opt/test/bin"
Is this a correct path for a test? Shouldn't we set TESTS_INSTALL_PATH 
to a correct path.

> +
> +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'with-external-libsystemd', 'with-builtin-libsystemd', d)} \
> +                   ${@bb.utils.contains('PTEST_ENABLED', '1', 'with-tests', '', d)}"
> +PACKAGECONFIG[with-builtin-libsystemd] = "-DBUILD_LIBSYSTEMD=ON,-DBUILD_LIBSYSTEMD=OFF,meson-native ninja-native git-native gperf-native gettext-native util-linux libcap,libcap"
Should we really support an embedded systemd build? Furthermore this 
will build systemd with a hidden version and bypass the bitbake fetcher. 
Is there a real use case for this and isn't the correct solution to 
create a systemd library only recipe?

> +PACKAGECONFIG[with-external-libsystemd] = "-DBUILD_LIBSYSTEMD=OFF,-DBUILD_LIBSYSTEMD=ON,systemd,libsystemd"
> +PACKAGECONFIG[with-tests] = "-DBUILD_TESTS=ON -DTESTS_INSTALL_PATH=${TEST_BIN_DIR},-DBUILD_TESTS=OFF"
> +
> +DEPENDS += "expat"
> +
> +SRCREV = "750dab39270f338181db8d841cd4b1a9a50ae4d7"
> +SRC_URI = "git://github.com/Kistler-Group/sdbus-cpp.git;protocol=https;destsuffix=sdbus-cpp-${PV};branch=master"
> +SRC_URI += "file://run-ptest"
> +
> +# Allow CMake to use git on the host machine
> +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
> +# Ninja is the default CMake generator in Yocto now, so let's set Unix Makefiles explicitly
> +OECMAKE_GENERATOR = "Unix Makefiles"
> +
> +EXTRA_OECMAKE = "-DBUILD_CODE_GEN=ON \
> +                 -DBUILD_DOC=ON \
> +                 -DBUILD_DOXYGEN_DOC=OFF"
> +
> +S = "${WORKDIR}/sdbus-cpp-${PV}"
Why don't you use "${WORKDIR}/git" and remove the destsuffix from the 
SRC_URI?

> +
> +PACKAGES += "${PN}-test"
> +ALLOW_EMPTY_${PN}-test = "1"
> +RDEPENDS_${PN}-test = "${PN}"
It is common to create an additional test package?

> +RDEPENDS_${PN}-ptest = "${PN}-test"
> +
> +# Don't take org.sdbuscpp.integrationtests.conf file into the base package
> +FILES_${PN} = "${libdir}/"
Why don't you use PACKAGE_BEFORE_PN or PACKAGES =+ ?

> +
> +FILES_${PN}-test += "${sysconfdir}/dbus-1/system.d/"
> +FILES_${PN}-test += "${TEST_BIN_DIR}/"
> +
> +FILES_${PN}-dev += "${bindir}/sdbus-c++-xml2cpp"
> +FILES_${PN}-dev += "${libdir}/cmake/sdbus-c++/sdbus-c++-config.cmake"
> +FILES_${PN}-dev += "${libdir}/cmake/sdbus-c++/sdbus-c++-config-version.cmake"
You don't need to add the two cmake paths any longer.

Regards
   Stefan


More information about the Openembedded-devel mailing list