diff --git a/Examples/test-suite/cffi/Makefile.in b/Examples/test-suite/cffi/Makefile.in index 1ce64675a..e27b2c85d 100644 --- a/Examples/test-suite/cffi/Makefile.in +++ b/Examples/test-suite/cffi/Makefile.in @@ -7,6 +7,9 @@ CFFI = @CFFIBIN@ SCRIPTSUFFIX = _runme.lisp HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/common.mk b/Examples/test-suite/common.mk index 32444688d..0952ee8c1 100644 --- a/Examples/test-suite/common.mk +++ b/Examples/test-suite/common.mk @@ -91,7 +91,10 @@ CPP_TEST_BROKEN += \ template_default_pointer \ template_private_assignment \ template_expr \ - $(CPP11_TEST_BROKEN) + $(CPP11_TEST_BROKEN) \ + $(CPP14_TEST_BROKEN) \ + $(CPP17_TEST_BROKEN) \ + $(CPP20_TEST_BROKEN) # Broken C test cases. (Can be run individually using: make testcase.ctest) @@ -632,6 +635,24 @@ CPP11_TEST_BROKEN = \ # cpp11_variadic_templates \ # Broken for some languages (such as Java) # cpp11_reference_wrapper \ # No typemaps +# C++14 test cases. +CPP14_TEST_CASES += \ + +# Broken C++14 test cases. +CPP14_TEST_BROKEN = \ + +# C++17 test cases. +CPP17_TEST_CASES += \ + +# Broken C++17 test cases. +CPP17_TEST_BROKEN = \ + +# C++20 test cases. +CPP20_TEST_CASES += \ + +# Broken C++20 test cases. +CPP20_TEST_BROKEN = \ + # Doxygen support test cases: can only be used with languages supporting # Doxygen comment translation (currently Python and Java) and only if not # disabled by configure via SKIP_DOXYGEN_TEST_CASES. @@ -699,6 +720,18 @@ ifeq (1,$(HAVE_CXX11)) CPP_TEST_CASES += $(CPP11_TEST_CASES) endif +ifeq (1,$(HAVE_CXX14)) +CPP_TEST_CASES += $(CPP14_TEST_CASES) +endif + +ifeq (1,$(HAVE_CXX17)) +CPP_TEST_CASES += $(CPP17_TEST_CASES) +endif + +ifeq (1,$(HAVE_CXX20)) +CPP_TEST_CASES += $(CPP20_TEST_CASES) +endif + # C test cases. (Can be run individually using: make testcase.ctest) C_TEST_CASES += \ arrays \ @@ -783,6 +816,9 @@ command_line_define.ctest: SWIGOPT += -DFOO C_TEST_CASES := $(filter-out $(FAILING_C_TESTS),$(C_TEST_CASES)) CPP_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP_TEST_CASES)) CPP11_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP11_TEST_CASES)) +CPP14_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP14_TEST_CASES)) +CPP17_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP17_TEST_CASES)) +CPP20_TEST_CASES := $(filter-out $(FAILING_CPP_TESTS),$(CPP20_TEST_CASES)) MULTI_CPP_TEST_CASES := $(filter-out $(FAILING_MULTI_CPP_TESTS),$(MULTI_CPP_TEST_CASES)) @@ -796,6 +832,9 @@ BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \ ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \ $(CPP11_TEST_CASES:=.clean) \ + $(CPP14_TEST_CASES:=.clean) \ + $(CPP17_TEST_CASES:=.clean) \ + $(CPP20_TEST_CASES:=.clean) \ $(C_TEST_CASES:=.clean) \ $(MULTI_CPP_TEST_CASES:=.clean) \ $(CPP_TEST_BROKEN:=.clean) \ @@ -824,6 +863,12 @@ check-cpp: $(CPP_TEST_CASES:=.cpptest) check-cpp11: $(CPP11_TEST_CASES:=.cpptest) +check-cpp14: $(CPP14_TEST_CASES:=.cpptest) + +check-cpp17: $(CPP17_TEST_CASES:=.cpptest) + +check-cpp20: $(CPP20_TEST_CASES:=.cpptest) + check-multicpp: $(MULTI_CPP_TEST_CASES:=.multicpptest) ifdef HAS_DOXYGEN diff --git a/Examples/test-suite/csharp/Makefile.in b/Examples/test-suite/csharp/Makefile.in index 600c5953d..0d2664681 100644 --- a/Examples/test-suite/csharp/Makefile.in +++ b/Examples/test-suite/csharp/Makefile.in @@ -9,6 +9,9 @@ CSHARPCILINTERPRETER_FLAGS = @CSHARPCILINTERPRETER_FLAGS@ CSHARPCONVERTPATH = @top_srcdir@/@CSHARPCONVERTPATH@ HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = ../@top_srcdir@ top_builddir = ../@top_builddir@ diff --git a/Examples/test-suite/d/Makefile.in b/Examples/test-suite/d/Makefile.in index e6b4e2d18..d6486845c 100644 --- a/Examples/test-suite/d/Makefile.in +++ b/Examples/test-suite/d/Makefile.in @@ -5,6 +5,9 @@ LANGUAGE = d HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = ../@top_srcdir@ top_builddir = ../@top_builddir@ diff --git a/Examples/test-suite/errors/Makefile.in b/Examples/test-suite/errors/Makefile.in index 97c7d5c76..347bf3858 100644 --- a/Examples/test-suite/errors/Makefile.in +++ b/Examples/test-suite/errors/Makefile.in @@ -17,6 +17,9 @@ LANGUAGE = errors ERROR_EXT = newerr HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/go/Makefile.in b/Examples/test-suite/go/Makefile.in index 67f96cf7e..d4c27c7b5 100644 --- a/Examples/test-suite/go/Makefile.in +++ b/Examples/test-suite/go/Makefile.in @@ -13,6 +13,9 @@ SCRIPTSUFFIX = _runme.go SO = @SO@ HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/guile/Makefile.in b/Examples/test-suite/guile/Makefile.in index 1fda5dc9c..2efa6adbe 100644 --- a/Examples/test-suite/guile/Makefile.in +++ b/Examples/test-suite/guile/Makefile.in @@ -9,6 +9,9 @@ VARIANT = SCRIPTSUFFIX = _runme.scm HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/java/Makefile.in b/Examples/test-suite/java/Makefile.in index 43695ce69..00ebb100b 100644 --- a/Examples/test-suite/java/Makefile.in +++ b/Examples/test-suite/java/Makefile.in @@ -12,6 +12,9 @@ SCRIPTSUFFIX = _runme.java SKIP_DOXYGEN_TEST_CASES = @JAVA_SKIP_DOXYGEN_TEST_CASES@ HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = ../@top_srcdir@ top_builddir = ../@top_builddir@ diff --git a/Examples/test-suite/javascript/Makefile.in b/Examples/test-suite/javascript/Makefile.in index 57b6eac75..61cc5ff3d 100644 --- a/Examples/test-suite/javascript/Makefile.in +++ b/Examples/test-suite/javascript/Makefile.in @@ -10,6 +10,9 @@ OBJEXT = @OBJEXT@ SO = @SO@ HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/lua/Makefile.in b/Examples/test-suite/lua/Makefile.in index 2d4100d1b..af6735101 100644 --- a/Examples/test-suite/lua/Makefile.in +++ b/Examples/test-suite/lua/Makefile.in @@ -7,6 +7,9 @@ LUA = @LUABIN@ SCRIPTSUFFIX = _runme.lua HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/mzscheme/Makefile.in b/Examples/test-suite/mzscheme/Makefile.in index 93dbb4ba1..212379ca8 100644 --- a/Examples/test-suite/mzscheme/Makefile.in +++ b/Examples/test-suite/mzscheme/Makefile.in @@ -7,6 +7,9 @@ MZSCHEME = mzscheme SCRIPTSUFFIX = _runme.scm HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/ocaml/Makefile.in b/Examples/test-suite/ocaml/Makefile.in index 9b0c32b0f..ffd62049d 100644 --- a/Examples/test-suite/ocaml/Makefile.in +++ b/Examples/test-suite/ocaml/Makefile.in @@ -10,6 +10,9 @@ VARIANT = _static SCRIPTSUFFIX = _runme.ml HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/octave/Makefile.in b/Examples/test-suite/octave/Makefile.in index 81696b3ff..5a092f5e3 100644 --- a/Examples/test-suite/octave/Makefile.in +++ b/Examples/test-suite/octave/Makefile.in @@ -8,6 +8,9 @@ SCRIPTSUFFIX = _runme.m PCHSUPPORT = @PCHSUPPORT@ HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/perl5/Makefile.in b/Examples/test-suite/perl5/Makefile.in index 3fb3ebac6..688b985ac 100644 --- a/Examples/test-suite/perl5/Makefile.in +++ b/Examples/test-suite/perl5/Makefile.in @@ -8,6 +8,9 @@ SCRIPTSUFFIX = _runme.pl TEST_RUNNER = $(srcdir)/run-perl-test.pl HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/php/Makefile.in b/Examples/test-suite/php/Makefile.in index 6a2a4590b..c918581bf 100644 --- a/Examples/test-suite/php/Makefile.in +++ b/Examples/test-suite/php/Makefile.in @@ -6,6 +6,9 @@ LANGUAGE = php SCRIPTSUFFIX = _runme.php HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/python/Makefile.in b/Examples/test-suite/python/Makefile.in index ddcd4afe9..baa89859a 100644 --- a/Examples/test-suite/python/Makefile.in +++ b/Examples/test-suite/python/Makefile.in @@ -15,6 +15,9 @@ PYCODESTYLE = @PYCODESTYLE@ PYCODESTYLE_FLAGS = --ignore=E252,E30,E402,E501,E731,E741,W291,W391 HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/r/Makefile.in b/Examples/test-suite/r/Makefile.in index 484dea375..78cc4bb53 100644 --- a/Examples/test-suite/r/Makefile.in +++ b/Examples/test-suite/r/Makefile.in @@ -9,6 +9,9 @@ R_OPT = --quiet --no-save --no-restore RUNR = R CMD BATCH $(R_OPT) '--args $(SCRIPTDIR)' HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/ruby/Makefile.in b/Examples/test-suite/ruby/Makefile.in index 3b673bf71..09ff02842 100644 --- a/Examples/test-suite/ruby/Makefile.in +++ b/Examples/test-suite/ruby/Makefile.in @@ -7,6 +7,9 @@ RUBY = @RUBY@ SCRIPTSUFFIX = _runme.rb HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/Examples/test-suite/scilab/Makefile.in b/Examples/test-suite/scilab/Makefile.in index e1effcd64..cf36794e3 100644 --- a/Examples/test-suite/scilab/Makefile.in +++ b/Examples/test-suite/scilab/Makefile.in @@ -8,6 +8,9 @@ SCILAB_OPT = @SCILABOPT@ SCRIPTSUFFIX = _runme.sci HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = ../@top_srcdir@ top_builddir = ../@top_builddir@ diff --git a/Examples/test-suite/tcl/Makefile.in b/Examples/test-suite/tcl/Makefile.in index 84a7299f7..db8eaa874 100644 --- a/Examples/test-suite/tcl/Makefile.in +++ b/Examples/test-suite/tcl/Makefile.in @@ -7,6 +7,9 @@ TCLSH = tclsh SCRIPTSUFFIX = _runme.tcl HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ diff --git a/configure.ac b/configure.ac index 188b2397f..4a7c76c79 100644 --- a/configure.ac +++ b/configure.ac @@ -304,40 +304,52 @@ if test x"$enable_cpp11_testing" = xyes; then CXX_SAVED=$CXX CXXCPP_SAVED=$CXXCPP - # Test for c++17 + # Test for c++20 CXXCPP=" " - AX_CXX_COMPILE_STDCXX(17, [noext], [optional]) - AC_MSG_CHECKING([whether C++11 to C++17 testing is enabled]) - if test "$HAVE_CXX17" = "1"; then + AX_CXX_COMPILE_STDCXX(20, [noext], [optional]) + AC_MSG_CHECKING([whether C++11 to C++20 testing is enabled]) + if test "$HAVE_CXX20" = "1"; then AC_MSG_RESULT([yes]) PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS" + HAVE_CXX17="1" HAVE_CXX14="1" HAVE_CXX11="1" else - AC_MSG_RESULT([no]) - - # Test for c++14 + # Test for c++17 CXXCPP=" " - CXX=$CXX_SAVED - AX_CXX_COMPILE_STDCXX(14, [noext], [optional]) - AC_MSG_CHECKING([whether C++11 to C++14 testing is enabled]) - if test "$HAVE_CXX14" = "1"; then + AX_CXX_COMPILE_STDCXX(17, [noext], [optional]) + AC_MSG_CHECKING([whether C++11 to C++17 testing is enabled]) + if test "$HAVE_CXX17" = "1"; then AC_MSG_RESULT([yes]) PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS" + HAVE_CXX14="1" HAVE_CXX11="1" else AC_MSG_RESULT([no]) - # Test for c++11 + # Test for c++14 CXXCPP=" " CXX=$CXX_SAVED - AX_CXX_COMPILE_STDCXX(11, [noext], [optional]) - AC_MSG_CHECKING([whether C++11 testing is enabled]) - if test "$HAVE_CXX11" = "1"; then + AX_CXX_COMPILE_STDCXX(14, [noext], [optional]) + AC_MSG_CHECKING([whether C++11 to C++14 testing is enabled]) + if test "$HAVE_CXX14" = "1"; then AC_MSG_RESULT([yes]) PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS" + HAVE_CXX11="1" else AC_MSG_RESULT([no]) + + # Test for c++11 + CXXCPP=" " + CXX=$CXX_SAVED + AX_CXX_COMPILE_STDCXX(11, [noext], [optional]) + AC_MSG_CHECKING([whether C++11 testing is enabled]) + if test "$HAVE_CXX11" = "1"; then + AC_MSG_RESULT([yes]) + PLATCXXFLAGS="$CXXCPP $PLATCXXFLAGS" + else + AC_MSG_RESULT([no]) + fi fi fi fi @@ -346,6 +358,9 @@ if test x"$enable_cpp11_testing" = xyes; then CXXCPP=$CXXCPP_SAVED fi AC_SUBST(HAVE_CXX11) +AC_SUBST(HAVE_CXX14) +AC_SUBST(HAVE_CXX17) +AC_SUBST(HAVE_CXX20) # On darwin 10.7,10.8,10.9 using clang++, need to ensure using # libc++ for tests and examples to run under mono. May affect