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++.
This commit is contained in:
23
ports/unix/coveragecpp.cpp
Normal file
23
ports/unix/coveragecpp.cpp
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user