summaryrefslogtreecommitdiff
path: root/ports/unix/coveragecpp.cpp
diff options
context:
space:
mode:
authorstijn <stijn@ignitron.net>2020-10-08 16:52:25 +0200
committerDamien George <damien@micropython.org>2020-10-29 15:29:50 +1100
commitfad4079778f46bc21dd19a674b31b4c3c7eb6a91 (patch)
tree1a25658b8ad160b4e783806a1bbe3cd86cc65115 /ports/unix/coveragecpp.cpp
parent0153148fd26308e4ce921a4287ac4a26af15a9fe (diff)
esp32,unix: Support building C++ code.
Support building .cpp files and linking them into the micropython executable in a way similar to how it is done for .c files. The main incentive here is to enable user C modules to use C++ files (which are put in SRC_MOD_CXX by py.mk) since the core itself does not utilize C++. However, to verify build functionality a unix overage test is added. The esp32 port already has CXXFLAGS so just add the user modules' flags to it. For the unix port use a copy of the CFLAGS but strip the ones which are not usable for C++.
Diffstat (limited to 'ports/unix/coveragecpp.cpp')
-rw-r--r--ports/unix/coveragecpp.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/ports/unix/coveragecpp.cpp b/ports/unix/coveragecpp.cpp
new file mode 100644
index 000000000..ea7418e1d
--- /dev/null
+++ b/ports/unix/coveragecpp.cpp
@@ -0,0 +1,23 @@
+extern "C" {
+#include "py/obj.h"
+}
+
+#if defined(MICROPY_UNIX_COVERAGE)
+
+// Just to test building of C++ code.
+STATIC mp_obj_t extra_cpp_coverage_impl() {
+ return mp_const_none;
+}
+
+extern "C" {
+mp_obj_t extra_cpp_coverage(void);
+mp_obj_t extra_cpp_coverage(void) {
+ return extra_cpp_coverage_impl();
+}
+
+// This is extern to avoid name mangling.
+extern const mp_obj_fun_builtin_fixed_t extra_cpp_coverage_obj = {{&mp_type_fun_builtin_0}, {extra_cpp_coverage}};
+
+}
+
+#endif