Commit graph

23,810 commits

Author SHA1 Message Date
Vadim Zeitlin
0f734e1164 Don't generate empty enum declarations
They are invalid in C++ and there shouldn't actually be any in valid
input, but they do occur in SWIG test suite.

Don't generate anything for them in the output, especially because doing
this is not really more complicated than using "enum_is_empty" field
that we had previously and might even be a tad simpler, as it doesn't
split the "{" and "}" output between two different functions.
2021-11-19 00:08:43 +01:00
Vadim Zeitlin
e7fa72fc06 Don't generate invalid forward enum declarations
Such declarations are invalid without specifying the underlying type
(which is only possible since C++11) and are useless anyhow, so just
don't bother emitting them.
2021-11-19 00:08:43 +01:00
Vadim Zeitlin
3765a08743 Allow having C++ test cases for C backend
Support compiling and running either _runme.c or _runme.cxx files for
the given test (but not both).

Add a simple C++ test file to check that it actually works.
2021-11-19 00:08:43 +01:00
William S Fulton
3354345255 GHA: switch ocaml testing to ubuntu-18.04 2021-11-17 22:27:00 +00:00
William S Fulton
9f8e9109be Update CI system wrt experimental languages 2021-11-17 22:18:06 +00:00
William S Fulton
07f18bef36 GHA: Test experimental languages - mzscheme and ocaml
These are allowed to fail and they won't fail the
overall build (like they did on Travis).
Implemented via the continue-on-error flag that Github Actions provides.
2021-11-17 21:23:59 +00:00
Dimitris Apostolou
f586d920f7
Fix typos 2021-11-17 07:07:02 +02:00
William S Fulton
ac9f819f6e Don't run appveyor when modifying Github Actions CI files 2021-11-16 19:48:22 +00:00
William S Fulton
0ec35cf24e GHA: Test Scilab 6.0 on ubuntu-18.04
6.1 on ubuntu-20.04 not yet working
2021-11-16 19:48:22 +00:00
William S Fulton
dbab08ec21 Scilab testing: don't hang on error 2021-11-16 19:48:22 +00:00
William S Fulton
9f5ad6debd Scilab JAVA_HOME environment fix
This might be needed on Github Actions as well as Travis??
2021-11-16 19:48:22 +00:00
William S Fulton
2582e3fc75 GHA: Add in Scilab testing 2021-11-15 23:03:02 +00:00
William S Fulton
63733a3b5c Short struct name in cpp11_final_override for Scilab 2021-11-15 22:56:29 +00:00
William S Fulton
99954d6d4e Shorten testcase variable names for Scilab 6 to work 2021-11-15 22:45:56 +00:00
William S Fulton
b53b2f1a27 Shorter names in cpp11_rvalue_reference3 testcase for Scilab 2021-11-15 22:13:27 +00:00
William S Fulton
606491326e Scilab compilation fix when wrapping C++11 enum classes 2021-11-15 20:19:12 +00:00
William S Fulton
75cacc1325 CC and CXX override improvements in examples
Use the overridden CC and CXX compiles when linking
when overriding at make time.
Previously the following would use CC and CXX specified at
configure time when linking:
  make CC=gcc-11 CXX=g++-11
2021-11-15 19:55:26 +00:00
William S Fulton
e6b6fa93aa Fix guile examples for C11 and later conformance 2021-11-15 19:25:41 +00:00
William S Fulton
47d39ed3d8 GHA: Add Guile to c++11,c++14,c++17 testing 2021-11-15 08:17:32 +00:00
William S Fulton
54e2ad073f Fix cpp11_type_aliasing test
Ordering fix for Guile wrappers to compile
2021-11-15 08:00:46 +00:00
William S Fulton
c83466af53 GHA: Add Lua to c++11,c++14,c++17 testing 2021-11-12 19:49:45 +00:00
William S Fulton
10af8fd921 Workaround Lua failing cpp11_raw_string_literals test 2021-11-12 19:45:25 +00:00
William S Fulton
01eb2e0aa9 Lua int ref typemap improvements
Fixes complex typedefs to const int& and const unsigned int&.
Fixes cpp11_type_aliasing testcase
2021-11-12 19:30:53 +00:00
William S Fulton
842ed6ca9d Testcase warning fix using gcc-11
warning: ‘this’ pointer is null [-Wnonnull]
2021-11-12 19:00:20 +00:00
William S Fulton
ada739b4a8 Fix mismatched new char[] and free() - Javascript
Javascript - v8 and node only.
When wrapping C code char arrays.
Now calloc is now used instead of new char[] in SWIG_AsCharPtrAndSize.
Fixes gcc-11 warning -Wmismatched-new-delete in arrays and
memberin_extend testcases.
2021-11-12 19:00:20 +00:00
William S Fulton
6cafc93135 -Wfree-nonheap-object warning fix using gcc-11 2021-11-12 19:00:20 +00:00
William S Fulton
d15a3cb1d4 Fix testcase -Wstringop-truncation warning in gcc11 2021-11-12 19:00:20 +00:00
William S Fulton
7da8ce722b Ruby 3.0 requires std::nullptr_t 2021-11-12 19:00:20 +00:00
William S Fulton
aedcad5384 Run GHA on all branches 2021-11-12 19:00:20 +00:00
William S Fulton
c1d8852609 GHA: Turn on full c++11, c++14, c++17 testing
Like we had on Travis

Note that Octave C++11 is already tested
2021-11-12 19:00:20 +00:00
William S Fulton
d13c63dc8d GHA: test go 1.17 (latest) version 2021-11-11 20:38:50 +00:00
William S Fulton
e74b9830bb GHA: C++11 testing and compiler name
Show compiler name (directly from inputs rather than from 'desc'.
Fix testing of C++11, C++14.
Allow for CSTD override to override with -std=gnu11 for languages
whose headers are not -std=c11 compatible.
Show c/c++ std being tested from github yaml file in the name.
2021-11-11 20:33:26 +00:00
William S Fulton
b69b5888a8 GHA: Fix testing of php versions
The ubuntu-20.04 machine has php 7.4 and 8.0 installed.
configure.ac always looks for newer versions over older versions of php.
To prevent always testing 8.0, remove all versions and just install the
required version.
2021-11-11 20:17:54 +00:00
William S Fulton
95c76a6fa6 Simpler Test code for handling SWIGLANG 2021-11-11 20:17:50 +00:00
William S Fulton
1bd3e771a0 Fix C tests for Javascript and c++17 2021-11-11 19:56:37 +00:00
William S Fulton
1c34be2d24 Fix nspace warning message 2021-11-11 18:59:25 +00:00
Vadim Zeitlin
5219338160 Fix previously unused access_change unit test runme file
This file had a wrong name and so wasn't used at all.

Do use it now, after renaming it to the required name and fixing its
compilation.
2021-11-10 02:17:07 +01:00
Vadim Zeitlin
e8f9bdba80 Remove wrapper aliases generation and use -namespace in the tests
The -namespace option provides a better way of using the wrapped API, so
drop the optional wrapper generation, which is useless when this option
is used and just generates many lines of unwanted junk in the header.

Update the test suite and the examples to compensate to not rely on
being able to define SWIG_DEFINE_WRAPPER_ALIASES and add -namespace
option to all C++ tests, as it's done for C# test suite, and update them
to use the correct prefix and also use the accessors for the global
variables rather than using them directly, as this is impossible when
namespace prefix is used (it would have been possible to define a
preprocessor symbol corresponding to the real variable name, but it's
arguably not worth it).

fixup! Remove wrapper aliases generation and use -namespace in the tests
2021-11-10 02:11:59 +01:00
Vadim Zeitlin
3ebf1c1769 Remove redundant cpp_basic_xxx tests
These tests duplicate the other, more complex, existing unit tests, so
it's just not useful to have them at all any more (they could have been
useful at the very beginning of C backend development, when none of the
other tests worked).
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
11bd97653f Inline functions used only once in functionWrapperCPPSpecific()
No real changes, just keep everything in a single function because it is
more clear than having both it and functionWrapperCPPSpecificWrapper()
doing the same thing.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
2f4a09fb21 Avoid calling getFunctionWrapperName() twice for each function
Pass the wrapper name to emit_wrapper_func_decl() to save on an extra
call to this function.

No real changes, this is just an optimization.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
fbf976768a Get rid of "c:globalfun" attribute
Use getCurrentClass() and other existing attributes to check if the
current node is inside a class or not (and hence is global), this is
more explicit and avoids confusion for static member functions that were
marked as being global in spite of being nested inside a class.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
8594a8def6 Use SWIG-specific suffix for non-overloaded %extend functions too
This avoids conflicts between functions synthesized by %extend when
adding static methods to an existing class, and the actual wrapper
functions generated by the backend.

This shouldn't result in any user-visible changes.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
70309fcb0a Refactor code in Language::staticmemberfunctionHandler()
No real changes, just move the test for "code" to the outer scope to
facilitate the upcoming changes.

This commit is best viewed ignoring whitespace-only changes.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
6833ead6ed Add -namespace option to use unique prefix for all wrappers
Using this option allows to prefix all exported symbols (functions,
enums and enum elements) with a prefix based on the given namespace.

Note that (global) variables can't be exported directly when using the
global namespace prefix, even if they are of C-compatible type.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
54af856d09 Fix typemaps for arrays of objects and object pointers
These typemaps never worked, but this went unnoticed until now because
the nonsensical "ctype" expansion generated by them still compiled.

With types possibly having a namespace prefix, they didn't any longer,
so define them correctly for the objects using "$resolved_type" and
define the typemap for "void*[]" separately, as "$resolved_type" can't
be used for it.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
5bf1497d7b Allow customizing type mangling in SWIG preprocessor
Use the "type" naming format for the types mangled by "#@" and "##@"
preprocessor operators, in order to allow customizing them for a
particular backend.

This isn't used by any backend yet, so this doesn't change anything so
far.
2021-11-10 00:53:39 +01:00
Vadim Zeitlin
26bf86322b Use SWIG-specific for non-overloaded synthesized functions too
This avoids conflicts between such functions, which are generated when
using %extend to add static methods to an existing class, and the actual
wrapper functions generated by the backend.

This shouldn't result in any user-visible changes.
2021-11-09 23:35:30 +01:00
Vadim Zeitlin
119222be77 Refactor code in Language::staticmemberfunctionHandler()
No real changes, just move the test for "code" to the outer scope to
facilitate the upcoming changes.

This commit is best viewed ignoring whitespace-only changes.
2021-11-09 23:35:28 +01:00
Vadim Zeitlin
cda93bd903 Fix enum value translation
Don't rely on hack with checking the value length and looking it up,
just check its type instead.
2021-11-07 02:29:01 +01:00