@@ -27,6 +27,7 @@ PTESTS_FAST_META_OE = "\
libxml++-5.0 \
libyang \
lmdb \
+ microsoft-gsl \
minicoredumper \
neon \
nlohmann-json \
@@ -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"
new file mode 100644
@@ -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"
new file mode 100644
@@ -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"