[oe] [meta-oe][PATCH] catch2: new package

Bartosz Golaszewski brgl at bgdev.pl
Thu Oct 11 09:08:24 UTC 2018


From: Bartosz Golaszewski <bgolaszewski at baylibre.com>

Add a recipe for the catch2 testing framework. There's a bug upstream
which makes it impossible to build with gcc7 so include a patch.

Signed-off-by: Bartosz Golaszewski <bgolaszewski at baylibre.com>
---
 .../0001-internal-fix-build-in-GCC-7.patch    | 35 +++++++++++++++++++
 meta-oe/recipes-test/catch2/catch2_2.4.1.bb   | 25 +++++++++++++
 2 files changed, 60 insertions(+)
 create mode 100644 meta-oe/recipes-test/catch2/catch2/0001-internal-fix-build-in-GCC-7.patch
 create mode 100644 meta-oe/recipes-test/catch2/catch2_2.4.1.bb

diff --git a/meta-oe/recipes-test/catch2/catch2/0001-internal-fix-build-in-GCC-7.patch b/meta-oe/recipes-test/catch2/catch2/0001-internal-fix-build-in-GCC-7.patch
new file mode 100644
index 000000000..606398afa
--- /dev/null
+++ b/meta-oe/recipes-test/catch2/catch2/0001-internal-fix-build-in-GCC-7.patch
@@ -0,0 +1,35 @@
+From 857bf7e83db330682a4c722d0b57be1e4481f4e2 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bgolaszewski at baylibre.com>
+Date: Thu, 11 Oct 2018 09:44:24 +0200
+Subject: [PATCH] internal: fix build in GCC 7
+
+The following error is emitted by gcc 7:
+
+include/internal/catch_tostring.cpp:217:21: error: comparison is always true due to limited range of data type [-Werror=type-limits]
+|      } else if ('\0' <= value && value < ' ') {
+|                 ~~~~~^~~~~~~~
+| cc1plus: all warnings being treated as errors
+
+We can drop the first part of the if.
+
+Signed-off-by: Bartosz Golaszewski <bgolaszewski at baylibre.com>
+---
+ include/internal/catch_tostring.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/internal/catch_tostring.cpp b/include/internal/catch_tostring.cpp
+index 4e0c027d..59cc8dec 100644
+--- a/include/internal/catch_tostring.cpp
++++ b/include/internal/catch_tostring.cpp
+@@ -214,7 +214,7 @@ std::string StringMaker<char>::convert(char value) {
+         return "'\\n'";
+     } else if (value == '\t') {
+         return "'\\t'";
+-    } else if ('\0' <= value && value < ' ') {
++    } else if (value < ' ') {
+         return ::Catch::Detail::stringify(static_cast<unsigned int>(value));
+     } else {
+         char chstr[] = "' '";
+-- 
+2.19.1
+
diff --git a/meta-oe/recipes-test/catch2/catch2_2.4.1.bb b/meta-oe/recipes-test/catch2/catch2_2.4.1.bb
new file mode 100644
index 000000000..ba14a362c
--- /dev/null
+++ b/meta-oe/recipes-test/catch2/catch2_2.4.1.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
+TDD and BDD - using C++11, C++14, C++17 and later."
+AUTHOR = "Phil Nash, Martin Horenovsky and others"
+HOMEPAGE = "https://github.com/catchorg/Catch2"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI = "git://github.com/catchorg/Catch2.git \
+           file://0001-internal-fix-build-in-GCC-7.patch"
+SRCREV = "9e1bdca4667295fcb16265eae00efa8423f07007"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "python-native"
+
+inherit cmake python3native
+
+# Header-only library
+ALLOW_EMPTY_${PN} = "1"
+
+do_install_append() {
+    rm ${D}/usr/share/Catch2/lldbinit
+    rm ${D}/usr/share/Catch2/gdbinit
+    rmdir ${D}/usr/share/Catch2/
+}
-- 
2.19.1




More information about the Openembedded-devel mailing list