diff options
author | Adrian Freihofer <adrian.freihofer@gmail.com> | 2023-12-07 21:52:49 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-12-13 11:58:15 +0000 |
commit | 2df986746b4010a24def7369f356b50e52bda50d (patch) | |
tree | cfd49ffcb07ac7060eebbec53e571e74fa35107a /meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp | |
parent | d7c05e4eed4ed436f2ce961df46f9654af83ffec (diff) | |
download | poky-2df986746b4010a24def7369f356b50e52bda50d.tar.gz |
oe-selftest: add a cpp-example recipe
This simple C++ project supports compilation with CMake and Meson.
(Autotool support could be added later on.)
It's supposed to be used with oe-selftest.
An artificial project has several advantages over compiling a normal
CMake or Meson based project for testing purposes:
- It is much faster because it can be kept minimalistic
- It can cover multiple odd corner cases
- No one will change it in an unpredictable way
- It can support multiple build tools with only one C++ codebase
(From OE-Core rev: 4904e772470b0d6e5d98ef0344b3f2bf54214661)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp')
-rw-r--r-- | meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp b/meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp new file mode 100644 index 0000000000..d3dc976864 --- /dev/null +++ b/meta-selftest/recipes-test/cpp/files/cpp-example-lib.cpp | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Copyright OpenEmbedded Contributors | ||
3 | * | ||
4 | * SPDX-License-Identifier: MIT | ||
5 | */ | ||
6 | |||
7 | #include <iostream> | ||
8 | #include <string> | ||
9 | #include <json-c/json.h> | ||
10 | #include "cpp-example-lib.hpp" | ||
11 | |||
12 | const std::string &CppExample::get_string() | ||
13 | { | ||
14 | return test_string; | ||
15 | } | ||
16 | |||
17 | const char *CppExample::get_json_c_version() | ||
18 | { | ||
19 | return json_c_version(); | ||
20 | } | ||
21 | |||
22 | void CppExample::print_json() | ||
23 | { | ||
24 | struct json_object *jobj; | ||
25 | const int flag = JSON_C_TO_STRING_SPACED | JSON_C_TO_STRING_PRETTY; | ||
26 | |||
27 | jobj = json_object_new_object(); | ||
28 | json_object_object_add(jobj, "test_string", json_object_new_string(test_string.c_str())); | ||
29 | |||
30 | std::cout << json_object_to_json_string_ext(jobj, flag) << std::endl; | ||
31 | |||
32 | json_object_put(jobj); // Delete the json object | ||
33 | } | ||