diff options
author | stijn <stijn@ignitron.net> | 2020-10-08 16:52:25 +0200 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2020-10-29 15:29:50 +1100 |
commit | fad4079778f46bc21dd19a674b31b4c3c7eb6a91 (patch) | |
tree | 1a25658b8ad160b4e783806a1bbe3cd86cc65115 /ports/unix/coveragecpp.cpp | |
parent | 0153148fd26308e4ce921a4287ac4a26af15a9fe (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.cpp | 23 |
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 |