Previously this was never done, as we couldn't determine if we were
using Cocoa or not at generation time, but we can determine it in the
makefile itself.
Try detecting more warnings that can be useful when building the
library.
Don't use -Wextra with gcc 4.8 which generates several completely
spurious warnings not generated by later compiler versions and which are
not worth fixing/working around.
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.
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.