Only check for the use of NULL in C++ code, not C, for example, where
it still can, and should, be used.
Also allow using "NULL" as part of a larger macro name (where it would
be followed by "_") or at the beginning/end of a string.
wxString is always based on std::[w]string since 2c0c727f49 (Remove wx
own wxStringImpl implementation, 2022-11-16) and all containers use
standard containers by default too now -- and there is a separate
wxUSE_STD_CONTAINERS for this anyhow.
The only remaining use of wxUSE_STL was as the default value for
wxUSE_STD_STRING_CONV_IN_WXSTRING option, but it's not really needed
for this neither, and this option can just be set to 0 by default.
Also add wxUSE_CHAR_CONV_IN_WXSTRING which can now be set to 0 too to
disable all unwanted implicit conversions (even "safe" ones, to wide
strings, in addition to the unsafe ones to narrow strings that could be
already disabled with wxUSE_UNSAFE_WXSTRING_CONV) to allow people who
don't want to have any implicit conversions at all to do it.
Keep --enable-stl configure option for compatibility, but warn if it is
used to tell people that it is not needed any longer.
The first unit test using wxWebView sometimes fails in other builds too,
so try using the same hack as was previously used for the clang build
for them as well.
Work around the problem which was previously hidden by 07dfc18cc0
(Disable wxWebView in ASAN CI build, 2021-01-31) by building the webkit
extension shared library without ASAN.
This should ideally be handled at the build system level, but this seems
difficult to do, so use this hack for now -- it at least ensures that
wxWebView unit tests are tested with ASAN too.
Testing disabling 3.0 compatibility is useless as it's disabled by
default in master, so disable 3.2 compatibility instead.
Also enable 3.0 compatibility for one of the builds to check that doing
this still works too.
Since 8.0~repack-3 version of the Debian Wine package, installing wine64
doesn't create wine64 symlink any more and wine package needs to be
installed to do it, apparently due to the changes done to fix
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1029536
This resulted in the tests not running any more because we used wine64
for running them. Just use "wine" now and install wine package, as it
should still run 64-bit binaries just fine.
Install its binary package from Ubuntu repositories directly instead of
installing libffi-dev to compile it ourselves later, as was done in the
previous commit. This is faster and also fixes the remaining problem in
the CI job using gcc 4.8 as this compiler can't be used to build cffi
because it uses -Wdate-time option incompatible with it.
Ubuntu configured to use apport by default, which intercepts core files
creation and creates them in a different directory.
Force creating core files in the current directory by overwriting the
corresponding kernel option. Note that this requires using --privileged
docker option as otherwise /proc/sys is mounted read-only inside the
contains and cannot be modified.
See #23189.
Previously this was done in the GitHub CI script, but this isn't
specific to GitHub, so do it in the common script to make these locales
also available under Cirrus CI.
Also switch to just installing locales-all instead of installing locales
and then running locale-gen because this is simpler and actually works
(locale-gen would have only worked if we modified /etc/locale.gen before
running it, but we didn't).
Amazingly, it seems that the latest gcc 12-based MinGW miscompiles
something in TIFF code _without_ optimizations as the SaveTIFF() test
fails when compiled with -O0 but works with -O2, so try enabling the
optimizations for this test.
It also makes more sense to run tests against the production/release
versions of the library anyhow, we only used --disable-optimise to save
on build time, but perhaps this is not as critical any longer.
This bot will be used to automatically close all the issues remaining in
"repro needed" state for more than 100 days as we are almost surely not
going to ever get any answer if we don't get it after 3+ months.
Add a disabled by default step allowing to connect to CI machine via
ssh, this can be useful for debugging the problems that can't be
reproduced locally.
Don't create a separate user, it should work without using one now (even
if it didn't work back when this file was initially added).
Also reuse the proc_count.sh script instead of using nproc directly here
for consistency.
Closes#23013.
This was previously disallowed by the code style check, but it's fine to
use this, as it expands to `nullptr` and it's not worth changing all the
existing occurrences of @NULL to @nullptr.
Remove the port files and references to it from the common headers and
elsewhere.
Also remove GPE (GNOME PDA Environment) support as libgpewidget is
unmaintained since 2006 or so and has never been really used.
Use __WXGTK__ to test for any version of wxGTK now. Still define
__WXGTK20__ for compatibility, but always define it now and don't test
for it in the library code.
This port hasn't been updated for ages and is not used by anybody any
longer, so remove its code to facilitate maintenance.
Also remove references to this port from the documentation and most of
the other places (VMS-specific descrip.vms files still check for it
because it's not clear how to update them all), including configure.
Regenerate the latter and rebake all makefiles.
Finally document that this port is not available any longer.
The previously used v2 uses node12 which is being deprecated by GitHub
and won't be any longer available soon, so switch to the currently
supported version.
Running it in 18.04 container would require installing libc++-dev and
other packages, it's simpler to just write it on the GitHub-provided
runner where they're already installed.
Note that we need to explicitly choose to use clang-10, as the GitHub
runner has clang-11 and clang-12 installed as well and the default clang
version is 11, but only libc++-10-dev is installed, so using the default
clang with -stdlib=libc++ fails out of the box.
Don't always install g++ as an existing build uses clang.
Also modify another build to use g++-4.8 as this is the oldest still
supported compiler and so it's nice to have a build using it.