diff mbox series

[meta-oe,2/2] microsoft-cpr: add new recipe including ptest

Message ID 20240326203135.532296-1-peter.marko@siemens.com
State Under Review
Headers show
Series [meta-oe,1/2] libcpr: add new recipe | expand

Commit Message

Peter Marko March 26, 2024, 8:31 p.m. UTC
From: Peter Marko <peter.marko@siemens.com>

The Guidelines Support Library (GSL) contains functions
and types that are suggested for use by the C++ Core Guidelines
maintained by the Standard C++ Foundation.
This repo contains Microsoft's implementation of GSL.

Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
 .../include/ptest-packagelists-meta-oe.inc    |  1 +
 .../packagegroups/packagegroup-meta-oe.bb     |  1 +
 .../microsoft-gsl/microsoft-gsl/run-ptest     |  4 ++
 .../microsoft-gsl/microsoft-gsl_4.0.0.bb      | 37 +++++++++++++++++++
 4 files changed, 43 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest
 create mode 100644 meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb

Comments

Ross Burton March 26, 2024, 9:14 p.m. UTC | #1
> On 26 Mar 2024, at 20:31, Peter Marko via lists.openembedded.org <peter.marko=siemens.com@lists.openembedded.org> wrote:
> +inherit cmake ptest
> +inherit ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'pkgconfig', '', d)}

Unnecessary complexity, just inherit pkgconfig directly. The mental overhead of parsing this line isn’t worth it to avoid pkgconfig-native.
 
> +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}"

Check PTEST_ENABLED instead of the DISTRO_FEATURE directly, as some people like to control what recipes are ptested at a recipe-level by setting PTEST_ENABLED explicitly.

Ross
diff mbox series

Patch

diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index fadec1221..70e5dad08 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -27,6 +27,7 @@  PTESTS_FAST_META_OE = "\
     libxml++-5.0 \
     libyang \
     lmdb \
+    microsoft-gsl \
     minicoredumper \
     neon \
     nlohmann-json \
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index 6e2012dae..bc15373b6 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -310,6 +310,7 @@  RDEPENDS:packagegroup-meta-oe-devtools ="\
     yasm \
     json-schema-validator \
     poke \
+    microsoft-gsl \
 "
 RDEPENDS:packagegroup-meta-oe-devtools:append:x86 = " cpuid msr-tools pahole pmtools"
 RDEPENDS:packagegroup-meta-oe-devtools:append:x86-64 = " cpuid msr-tools pahole pcimem pmtools"
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest
new file mode 100644
index 000000000..2d5bdf4ff
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl/run-ptest
@@ -0,0 +1,4 @@ 
+#!/bin/sh
+
+gsl_tests && echo "PASS: gsl_tests" || echo "FAIL: gsl_tests"
+gsl_noexcept_tests && echo "PASS: gsl_noexcept_tests" || echo "FAIL: gsl_noexcept_tests"
diff --git a/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb
new file mode 100644
index 000000000..14b2dd2fb
--- /dev/null
+++ b/meta-oe/recipes-devtools/microsoft-gsl/microsoft-gsl_4.0.0.bb
@@ -0,0 +1,37 @@ 
+SUMMARY = "GSL: Guidelines Support Library"
+DESCRIPTION = "The Guidelines Support Library (GSL) contains functions \
+    and types that are suggested for use by the C++ Core Guidelines \
+    maintained by the Standard C++ Foundation. \
+    This repo contains Microsoft's implementation of GSL."
+HOMEPAGE = "https://github.com/microsoft/GSL"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=363055e71e77071107ba2bb9a54bd9a7"
+
+SRC_URI = "git://github.com/microsoft/GSL.git;protocol=https;branch=main \
+    file://run-ptest"
+SRCREV = "a3534567187d2edc428efd3f13466ff75fe5805c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake ptest
+inherit ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'pkgconfig', '', d)}
+
+# this is header-only library
+ALLOW_EMPTY:${PN} = "1"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ptest', d)}"
+PACKAGECONFIG[ptest] = "-DGSL_TEST=ON,-DGSL_TEST=OFF,googletest"
+
+do_install_ptest() {
+    install -d ${D}${bindir}
+    install -m 0755 ${B}/tests/gsl_tests ${D}${bindir}
+    install -m 0755 ${B}/tests/gsl_noexcept_tests ${D}${bindir}
+}
+
+FILES:${PN}-ptest = "${bindir}/gsl*_tests"
+
+# there is already other gsl recipe, so recipe name does not match the real component name
+CVE_PRODUCT = "microsoft:gsl"
+
+BBCLASSEXTEND = "native nativesdk"