Include required headers for %imported modules

We need the types from the imported modules, so #include the header
generated for it.

Unfortunately we have to half-guess the name used for that header, as
it's not available anywhere (and can't really be, as it could be changed
by a command line option used for another SWIG invocation that was used
to compile that module), but this seems to work well enough in practice.

In particular, this fixes failures in multi cpp tests, so that we don't
need FAILING_MULTI_CPP_TESTS any longer.
This commit is contained in:
Vadim Zeitlin 2021-11-25 02:50:37 +01:00
commit 17fbb0a528
3 changed files with 35 additions and 9 deletions

View file

@ -89,12 +89,6 @@ FAILING_CPP_TESTS := \
cpp11_rvalue_reference3 \
cpp11_type_aliasing \
FAILING_MULTI_CPP_TESTS := \
clientdata_prop \
imports \
import_stl \
template_typedef_import \
# Ignore warnings about failing to apply typemaps because none are defined:
# usually there is no need for special typemaps in C.
char_binary.cpptest director_binary_string.cpptest li_typemaps.cpptest li_typemaps_apply.cpptest long_long_apply.cpptest: SWIGOPT += -w453
@ -202,7 +196,7 @@ valuewrapper_const.cpptest \
valuewrapper_opaque.cpptest \
: SWIGOPT += -nocxx
%.multicpptest: SWIGOPT += -nocxx
%.multicpptest: SWIGOPT += -namespace $*
%.cpptest: SWIGOPT += -namespace $*

View file

@ -1,5 +1,5 @@
#if !defined(SWIGGO)
// Prevent Go from generating a Go module import - this test is not set up as true multiple modules
#if !defined(SWIGC) && !defined(SWIGGO)
// Prevent C/Go from generating a C include/Go module import - this test is not set up as true multiple modules
%module import_fragments_a
#endif