Commit graph

237 commits

Author SHA1 Message Date
Scott Talbert
8b83e45f0e Check building samples out of tree in a CI job
Fixes: #23722

Closes #23723.
2023-07-21 20:38:37 +02:00
Vadim Zeitlin
2e22666db8 Compile Cocoa control example in Unix "widgets" sample makefile
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.
2023-07-11 13:40:21 +02:00
Vadim Zeitlin
c9c213553a Exclude some bakefiles from Whitespace code check too
Add a couple of .bkl files containing TABs in the embedded make
fragments to the list of files skipped by the whitespace check.
2023-07-11 13:39:13 +02:00
Vadim Zeitlin
78760c3538 Enable -Wextra for the CI builds
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.
2023-07-04 02:19:14 +02:00
Vadim Zeitlin
fe66c0e38c Exclude a couple of makefile-like files from whitespace checks
It's require to use TAB for indentation in these files.
2023-06-20 15:12:34 +02:00
Vadim Zeitlin
6bba7055aa Exclude descrip.mms files everywhere from the whitespace check
Previously only the top-level one was excluded, but others use TABs too.
2023-06-03 21:07:40 +02:00
Vadim Zeitlin
5f5e5c27dd Merge branch 'keep-on-same-display'
Keep window on the same display when its client size is changed.

See #23533.
2023-05-10 22:45:02 +01:00
Vadim Zeitlin
a0e3f1e1ab Use grep instead of fgrep and egrep
The latter are deprecated and shouldn't be used any longer.

No real changes.

Closes #23537.
2023-05-10 23:44:17 +02:00
Vadim Zeitlin
438da9c99a Avoid mis-detecting NULL as part of other identifiers
Tighten the search for NULL in the code style check to avoid flagging
the use of MONITOR_DEFAULTTONULL (Win32 API constant) as violation.
2023-05-08 23:40:51 +01:00
Vadim Zeitlin
544353e940 Add CI build of wxUniv/MSW
As long as this build is still supported, it must be tested, as it was
broken for a long time without anybody noticing.
2023-04-22 16:39:42 +02:00
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
6e8f60e308 Add configuration file for the "no response" GitHub bot
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.
2022-12-09 02:02:55 +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