This is probably not the greatest idea, and it would be better to change
the generated code to avoid these tests instead, but it was already done
like this for several tests, so just add two more of them that generate
warnings such as
../../member_funcptr_galore_wrap.cxx: In function ‘SwigV8ReturnValue _wrap_MemberFuncPtrs_aaa6(const SwigV8Arguments&)’:
../../member_funcptr_galore_wrap.cxx:3495:90: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers]
3495 | result = (int)((MemberFuncPtrs const *)arg1)->aaa6((short (Funcs::*const )(bool) const)arg2);
| ^~~~
when using gcc 9.
146 lines
4 KiB
Makefile
146 lines
4 KiB
Makefile
#######################################################################
|
|
# Makefile for javascript test-suite
|
|
#######################################################################
|
|
|
|
LANGUAGE = javascript
|
|
NODEGYP = @NODEGYP@
|
|
NODEJS = @NODEJS@
|
|
SCRIPTSUFFIX = _runme.js
|
|
OBJEXT = @OBJEXT@
|
|
SO = @SO@
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
C_TEST_CASES += \
|
|
ccomplextest \
|
|
|
|
CPP_TEST_CASES += \
|
|
javascript_lib_arrays \
|
|
|
|
SWIGEXE = $(top_builddir)/swig
|
|
SWIG_LIB_DIR = $(top_srcdir)/Lib
|
|
|
|
ifneq (, $(ENGINE))
|
|
JSENGINE=$(ENGINE)
|
|
else
|
|
JSENGINE=node
|
|
endif
|
|
|
|
ifneq (, $(V8_VERSION))
|
|
JSV8_VERSION=$(V8_VERSION)
|
|
else
|
|
JSV8_VERSION=0x031110
|
|
endif
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
SWIGOPT += -DV8_VERSION=$(JSV8_VERSION)
|
|
|
|
_setup = \
|
|
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
echo "$(ACTION)ing $(LANGUAGE) ($(JSENGINE)) testcase $* (with run test)" ; \
|
|
else \
|
|
echo "$(ACTION)ing $(LANGUAGE) ($(JSENGINE)) testcase $*" ; \
|
|
fi;
|
|
|
|
ifeq (node,$(JSENGINE))
|
|
|
|
SWIGOPT += -v8 -DBUILDING_NODE_EXTENSION=1
|
|
|
|
# shut up some warnings
|
|
# contract macro has an empty 'else' at the end...
|
|
aggregate.cpptest: GYP_CFLAGS = \"-Wno-empty-body\"
|
|
contract.cpptest: GYP_CFLAGS = \"-Wno-empty-body\"
|
|
|
|
# dunno... ignoring generously
|
|
apply_signed_char.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
constant_pointers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
cpp11_ref_qualifiers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
director_basic.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
enum_thorough.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
member_funcptr_galore.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
|
|
|
setup_node = \
|
|
test -d $* || mkdir $* && \
|
|
sed -e 's|$$testcase|$*|g; s|$$cflags|$(GYP_CFLAGS)|g; s|$$srcdir|$(srcdir)|g' \
|
|
$(srcdir)/node_template/binding.gyp.in > $*/binding.gyp && \
|
|
sed -e 's|$$testcase|$*|g;' \
|
|
$(srcdir)/node_template/index.js.in > $*/index.js
|
|
|
|
# Note: we need to use swig in C parse mode, but make node-gyp believe it is c++ (via file extension)
|
|
swig_and_compile_c = \
|
|
$(setup_node) && \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
SWIGOPT='-javascript $(SWIGOPT) -o $*_wrap.cxx $(srcdir)/../$*.i' swiginvoke && \
|
|
MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null
|
|
|
|
swig_and_compile_cpp = \
|
|
$(setup_node) && \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
SWIGOPT='-c++ -javascript $(SWIGOPT) $(srcdir)/../$*.i' swiginvoke && \
|
|
MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null
|
|
|
|
run_testcase = \
|
|
if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
|
|
env NODE_PATH=$$PWD:$(srcdir) $(RUNTOOL) $(NODEJS) $(srcdir)/$*$(SCRIPTSUFFIX); \
|
|
fi
|
|
|
|
|
|
%.ctest:
|
|
$(_setup)
|
|
+$(swig_and_compile_c)
|
|
$(run_testcase)
|
|
|
|
%.cpptest:
|
|
$(_setup)
|
|
+$(swig_and_compile_cpp)
|
|
$(run_testcase)
|
|
|
|
%.multicpptest:
|
|
$(_setup)
|
|
|
|
else
|
|
|
|
SWIGOPT += -$(JSENGINE)
|
|
|
|
run_testcase = \
|
|
if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
|
|
$(RUNTOOL) $(top_builddir)/Tools/javascript/javascript -$(JSENGINE) $(srcdir)/$*$(SCRIPTSUFFIX); \
|
|
fi
|
|
|
|
%.ctest:
|
|
$(_setup)
|
|
+$(swig_and_compile_c)
|
|
$(run_testcase)
|
|
|
|
%.cpptest:
|
|
$(_setup)
|
|
+$(swig_and_compile_cpp)
|
|
$(run_testcase)
|
|
|
|
%.multicpptest:
|
|
$(_setup)
|
|
+$(swig_and_compile_multi_cpp)
|
|
$(run_testcase)
|
|
|
|
endif
|
|
|
|
|
|
%.clean:
|
|
@rm -rf $*
|
|
@rm -f $*_wrap.* $*$(SO) $*.$(OBJEXT)
|
|
|
|
clean:
|
|
for ext in _wrap.cxx _wrap.$(OBJEXT) $(SO); do \
|
|
rm -f clientdata_prop_a$${ext} clientdata_prop_b$${ext}; \
|
|
rm -f imports_a$${ext} imports_b$${ext}; \
|
|
rm -f import_stl_a$${ext} import_stl_b$${ext}; \
|
|
rm -f mod_a$${ext} mod_b$${ext}; \
|
|
rm -f multi_import_a$${ext} multi_import_b$${ext}; \
|
|
rm -f packageoption_a$${ext} packageoption_b$${ext} packageoption_c$${ext}; \
|
|
rm -f template_typedef_cplx2$${ext}; \
|
|
done
|