Commit graph

214 commits

Author SHA1 Message Date
Vadim Zeitlin
a0ea27cccf Restrict check for obsolete macros to C++ code
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.
2023-04-17 18:33:16 +02:00
Vadim Zeitlin
35c35c235e Remove wxUSE_STL which is not really used any longer
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.
2023-04-15 17:22:09 +02:00
Vadim Zeitlin
0964b93ccd Add a CI build using wx implementation of container classes
As long as we support building with wxUSE_STD_CONTAINERS==0, we need to
test that this build still works.
2023-04-10 20:40:00 +01:00
Scott Talbert
04326551fd CI: ignore CircleCI config files from all other CIs
Avoid spurious rebuilds when modifying CircleCI config files.

Closes #23405.
2023-04-04 15:28:34 +02:00
Vadim Zeitlin
d5b61a16bf Merge branch 'propgrid-improve-and-test-compat'
Improve and test 3.0 compatibility in wxPG.

See #23369, #23375.
2023-03-30 19:48:01 +02:00
Vadim Zeitlin
dee816bb5b Merge branch 'ci-utf8'
Fix UTF-8 build under MSW and improve its coverage in the CI jobs.

See #23313.

Closes #23328.
2023-03-30 19:46:05 +02:00
Vadim Zeitlin
3ac39970b1 Extend wxWebView test hack to all the builds
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.
2023-03-29 13:30:50 +02:00
Vadim Zeitlin
8ee559430b Enable wxWebView in ASAN Unix CI build
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.
2023-03-29 01:09:52 +02:00
Vadim Zeitlin
ad29bdc6e4 Change one of the MSW CI builds to use UTF-8
Cover a previously unused build configuration in the CI: UTF-8 with MSVS
under MSW.
2023-03-24 19:18:30 +01:00
Vadim Zeitlin
5cc2983bee Test UTF-8 build variant with ASAN too
To avoid adding yet another build, enable UTF-8 and ASAN for the
existing C++20 build.
2023-03-24 19:17:59 +01:00
Vadim Zeitlin
650aeb7466 Update options used in CI builds for testing compatibility
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.
2023-03-23 13:34:08 +01:00
Vadim Zeitlin
28e0a7e01d Fix using Wine in wxMSW cross-CI workflow
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.
2023-03-18 18:00:36 +01:00
Vadim Zeitlin
5f486a0806 A better fix for installing cffi in Ubuntu 18.04 CI builds
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.
2023-02-28 20:06:39 +01:00
Vadim Zeitlin
66a39d7230 Fix installing httpbin in Ubuntu 18.04 CI builds
For some reason the wheel (i.e. binary package) that was installed by
python3-pip 9.0.1-2.3~ubuntu1.18.04.6 before is not installed by the
latest 9.0.1-2.3~ubuntu1.18.04.7 version of it which has just appeared
in Ubuntu 18.04 repositories, and cffi is now built as part of the
module installation, see the following pseudo-diff between the old
successful and the new failing builds:

- Downloading https://files.pythonhosted.org/packages/3a/12/d6066828014b9ccb2bbb8e1d9dc28872d20669b65aeb4a86806a0757813f/cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
+ Downloading https://files.pythonhosted.org/packages/2b/a8/050ab4f0c3d4c1b8aaa805f70e26e84d0e27004907c5b8ecc1d31815f92a/cffi-1.15.1.tar.gz

And building this module requires libffi, so install it.
2023-02-28 18:58:52 +01:00
Vadim Zeitlin
8505c48a34 Cancel in progress builds of PRs when a new one starts
Add a snippet based on the example in

https://docs.github.com/en/actions/using-jobs/using-concurrency#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow

to all CI workflows to cancel the currently running build when a new one
starts. This should ensure that we don't keep building the old version
of the PR after a new one has been pushed.
2023-02-21 14:58:57 +01:00
Maarten Bent
1e3c148b5f
Fix missing submodule in CI after Scintilla update
Remove scintilla from 'git diff' checks, since it doesn't recurse into submodules by default.
2023-02-15 00:20:20 +01:00
Vadim Zeitlin
4918df7261 Fix core files creation
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.
2023-01-31 01:27:48 +01:00
Vadim Zeitlin
b8c6ba18f3 Fail on warnings in MSW clang CI build
We want to keep the build warning-free and we already use -Werror for
the Unix CI builds, so do it here too, for consistency.
2023-01-06 00:58:05 +01:00
Vadim Zeitlin
5ab36f825a Install locales used by our tests in before_install.sh
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).
2022-12-31 20:31:47 +01:00
Artur Wieczorek
21ee9983a2 Remove reference to no longer existing tests
ClippingBoxTestCase::wxClientDC doesn't exist anymore.
2022-12-29 12:39:27 +01:00
Maarten Bent
431171c2d0
Enable wxWebViewEdge in MSW Clang CI 2022-12-23 21:55:24 +01:00
Vadim Zeitlin
828a5b2c52 Show compiler version in the MSW cross-builds CI workflow
This avoids the need to go hunting for the version of the package
installed by apt-get.
2022-12-18 22:43:48 +01:00
Vadim Zeitlin
f2c04694e1 Enable optimizations in cross MSW CI builds
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.
2022-12-18 22:41:04 +01:00
Vadim Zeitlin
5e399fd575 And now fix the schedule specification too 2022-12-12 14:22:20 +01:00
Vadim Zeitlin
f8fffeeaf4 Fix indent in the "no response" workflow config file 2022-12-12 14:16:08 +01:00
Vadim Zeitlin
d6fb886d1a Use "no response" GitHub Action rather than "no response" bot
Running the action periodically is even simpler than setting up a bot,
so do this instead.
2022-12-11 21:48:45 +01:00
Vadim Zeitlin
f7b2036a92 Allow running CI builds with tmate enabled
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.
2022-12-05 23:27:01 +01:00
Vadim Zeitlin
1467f644fc Simplify CI job cross-compiling wxMSW
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.
2022-12-04 01:04:05 +01:00
Vadim Zeitlin
17ac31844d Allow using @NULL in interface/wx docs
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.
2022-11-23 02:44:50 +01:00
Maarten Bent
4f0502cde0
Add clang MSW build to CI 2022-11-19 20:00:20 +01:00
PB
5c72c7af35 Do not trigger non-CMake CI builds with CMake-only changes
Closes #22934.
2022-11-08 18:19:37 +01:00
Vadim Zeitlin
32adaf0402 Remove ANSI wxGTK CI build
This is not supported any longer.
2022-10-27 19:43:30 +02:00
Vadim Zeitlin
c440fbce78 Disable use of host pkg-config in wxiOS CI build
Set PKG_CONFIG_LIBDIR=/dev/null explicitly to disable the use of the
host libraries when cross-compiling.
2022-10-25 21:38:27 +02:00
Vadim Zeitlin
2bdd648128 Remove unnecessary wxCONFIGURE_FLAGS environment variable
It was confusing to have both it and wxCONFIGURE_OPTIONS, so remove it
and just use its value as part of wxCONFIGURE_OPTIONS.

No real changes.
2022-10-25 20:50:24 +02:00
Maarten Bent
619071cb71
Fix NULL usage
Ignore scintilla files in NULL check.
Allow to use nullptr as an alias.
2022-10-22 21:30:37 +02:00
Maarten Bent
289cd2e58e
Exclude Scintilla from whitespace check 2022-10-22 20:06:05 +02:00
Vadim Zeitlin
0594dfeb72 Update hendrikmuhs/ccache-action to avoid deprecation warnings
Upgrade it to v1.2.3.
2022-10-18 19:48:12 +02:00
Vadim Zeitlin
ddeefc0ff2 Update microsoft/setup-msbuild to avoid deprecation warnings
Upgrade it to v1.1.3.
2022-10-18 19:48:00 +02:00
Vadim Zeitlin
f044e5cab3 Avoid deprecation warnings for gha-setup-vsdevenv action
Switch to a local fork of the action using node 16 and latest
actions/core package as both are necessary to avoid getting deprecation
warnings.
2022-10-18 19:45:15 +02:00
Vadim Zeitlin
f8da25ca45 Switch CMake wxGTK build to Ubuntu 22.04
Avoid warnings about using deprecated Ubuntu 18.04 runner.
2022-10-18 19:17:48 +02:00
Vadim Zeitlin
3699dcf6b3 Check for adding NULL macro too
This might be too coarse, e.g. NULL is still needed in C code, so this
might need to be restricted to C++ files only later.
2022-10-18 18:36:30 +02:00
Vadim Zeitlin
c2eab06e4b Merge branch 'remove-motif-and-gtk1'
Remove obsolete and unmaintained wxMotif and wxGTK1 ports.

See #22877.
2022-10-18 18:30:58 +02:00
Vadim Zeitlin
2ebd4a6f8d Add check for obsolete macros to automatic code style checks
Avoid checking in code using wxOVERRIDE or wxNOEXCEPT again, now that
we've got rid of them.
2022-10-18 02:23:01 +02:00
Vadim Zeitlin
fb4f0b590c Remove wxGTK1 port and GPE support
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.
2022-10-16 22:01:02 +02:00
Vadim Zeitlin
0ef1cdcc21 Remove support for wxMotif
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.
2022-10-16 16:39:56 +02:00
Vadim Zeitlin
9ed1a4ea59 Use v3 of checkout action in GitHub CI builds
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.
2022-10-10 23:55:12 +02:00
Vadim Zeitlin
cccf2ba263 Try ignoring the first test failure in clang/Ubuntu 20.04 build
For unknown reason this test fails when run for the first time on this
system, but succeeds during the subsequent runs.
2022-10-10 23:50:11 +02:00
Vadim Zeitlin
ab1c5105a0 Switch clang CI build to use Ubuntu 20.04
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.
2022-10-09 16:55:25 +02:00
Vadim Zeitlin
be97082425 Install the specified compiler package in container
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.
2022-10-09 14:23:42 +02:00
Vadim Zeitlin
256d7296b2 Install xvfb when using a container
Unlike the full GitHub environment, this package is not pre-installed in
a "plain" Ubuntu container.
2022-10-09 01:49:52 +02:00