Commit Graph

311 Commits

Author SHA1 Message Date
Vadim Zeitlin
c375a91dd6 Exclude headers generated by wayland-scanner from code checks
These files contain TABs, and NULLs, but we don't care about them.
2025-08-22 21:27:36 +02:00
Vadim Zeitlin
55fd008650 Restore CI jobs with wxUSE_STD_STRING_CONV_IN_WXSTRING=1
Some checks failed
No Response / no-response (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 compatible 3.0 (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK ASAN not compatible (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK UTF-8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxQt (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxX11 (push) Has been cancelled
Unix builds / Ubuntu 20.04 wxGTK 3 with clang (push) Has been cancelled
Unix builds / Ubuntu 22.04 wxGTK with wx containers (push) Has been cancelled
Unix builds / Ubuntu 24.04 wxGTK UBSAN (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxDFB (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 3 static with gcc 4.8 (push) Has been cancelled
Unix builds / Ubuntu 18.04 wxGTK 2 (push) Has been cancelled
CMake builds / Ubuntu 22.04 wxGTK 3 (push) Has been cancelled
CMake builds / MSW/MSVC wxMSW (push) Has been cancelled
CMake builds / MSW/Clang wxMSW (push) Has been cancelled
CMake builds / macOS latest wxOSX Ninja (push) Has been cancelled
CMake builds / macOS 14 wxOSX Xcode (push) Has been cancelled
CMake builds / macOS 14 wxIOS (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 5.15 (push) Has been cancelled
CMake builds / MSW/MSVC wxQt 6.8 (push) Has been cancelled
Mac builds / wxMac ARM ASAN not compatible (push) Has been cancelled
Mac builds / wxMac Universal C++14 (push) Has been cancelled
Mac builds / wxiOS (push) Has been cancelled
Mac builds / wxMac Intel C++17 (push) Has been cancelled
Mac Xcode builds / iOS Simulator static (push) Has been cancelled
Mac Xcode builds / macOS dynamic Release (push) Has been cancelled
Mac Xcode builds / iOS static Debug (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Debug x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 DLL Release x64 (push) Has been cancelled
MSW builds / wxMSW vs2022 Debug Win32 (push) Has been cancelled
MSW builds / wxMSW vs2022 Release arm64 (push) Has been cancelled
MSW cross-builds / wxMSW 64 bits not compatible (push) Has been cancelled
MSW cross-builds / wxMSW/Univ (push) Has been cancelled
MSW cross-builds / wxMSW 32 bits (push) Has been cancelled
Code Checks / Check Spelling (push) Has been cancelled
Code Checks / Check Whitespace (push) Has been cancelled
Code Checks / Check Mixed EOL (push) Has been cancelled
Code Checks / Check C++ Style (push) Has been cancelled
Code Checks / Check All Headers In allheaders.h (push) Has been cancelled
After the changes 35c35c235e (Remove wxUSE_STL which is not really used
any longer, 2023-04-15) there were no more CI builds using wxString
without implicit conversion to "char*", so errors like the one fixed in
the parent commit were not detected any more.

Add builds using wxUSE_STD_STRING_CONV_IN_WXSTRING=1 which disables
conversions to "char*" in wxString to ensure this doesn't happen again.
2025-07-28 16:19:47 +02:00
Vadim Zeitlin
b2b8336e15 Move wxQt5 CI job to CMake workflow too
For the same reasons as in the parent commit message, this job belongs
to the workflow in ci_cmake.yml rather than MSBuild one in ci_msw.yml.
2025-06-18 02:17:03 +02:00
Vadim Zeitlin
cd50322165 Move wxMSW/clang CI job to the workflow using CMake
This job uses CMake and not MSBuild, so move it to the appropriate
workflow.
2025-06-18 02:17:03 +02:00
Vadim Zeitlin
e2bbec97c2 Only use "-jN" with make-based CMake generators
Don't use this option with e.g. MSBuild which doesn't understand it.
2025-06-17 21:35:40 +02:00
Vadim Zeitlin
688a95f0c4 Don't install Qt in CMake wxMSW CI job
It's only needed for wxQt, so don't waste time doing it in wxMSW job.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
73bfa1de15 Use more consistent CMake wxMSW CI job name
wxQt job uses wxQt in its name, so use wxMSW for this one.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
1cad028f3d Use better names for the other MSW CI jobs
Make them more consistent with wxMSW MSVS job.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
fccd7f703d Add MSVS wxMSW build using C++20
It seems useful to test the latest support C++ standard version too.

Add cxx20.props which can also be used locally in a similar way, i.e.
after copying it to wx_local.props.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
8a739c6893 Move wxQt/MSVS CI job from AppVeyor to GitHub Actions
It should run faster there, reducing total CI run time.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
b9e3dc100d Leave only MSVS 2022 CI jobs
MSVS 2019 is only available in windows-2019 image which is being retired
by GitHub, see https://github.com/actions/runner-images/issues/12045
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
b053b687d1 Stop on warnings in MSVS CI jobs
Somewhat confusingly, using /WX compiler switch doesn't work, but using
MSBuild /WarnAsError one does.
2025-06-17 17:07:15 +02:00
Vadim Zeitlin
74174e7c80 Enable extra warnings if wxENABLE_EXTRA_WARNINGS is defined
Doing this in this way instead of just adding -Wextra and other options
to the compiler command line allows to use more stringent warnings for
our own code, but not for the third party libraries, that would usually
be compiled with the same compiler options as it.
2025-06-02 00:55:59 +02:00
Vadim Zeitlin
2fd894514e Use current upstream version of gh-release action
The problem that had been previously fixed in our fork should be fixed
upstream too by now.
2025-05-25 17:21:53 +02:00
Vadim Zeitlin
45a67caed1 Use node 20-based versions of the actions
Node 16 is not available on GitHub Actions any longer.

(cherry picked from commit c55004dcb2)
2025-05-25 17:20:55 +02:00
Vadim Zeitlin
6e4ed39bdd Install Doxygen in MSW part of make_release workflow
Somehow it's not available by default any longer.

(cherry picked from commit 015e120fa8)
2025-05-25 17:20:05 +02:00
Vadim Zeitlin
28eca2fd38 Add missing new line before the checksums
Just a minor cosmetic fix.

(cherry picked from commit 0f6dfb6369)
2025-05-25 17:20:05 +02:00
Vadim Zeitlin
813d36f024 Try using -Wsuggest-override in the CI builds
This is a useful warning and we want to ensure that wx compiles cleanly
with it.

Note that it can't be used for gcc < 11 (it is supported by it since 5.1
but there are tons of false positives for the macros from wx/rtti.h with
the older versions) and only relatively recent clang supports this
gcc-compatible option.
2025-05-20 17:39:59 +02:00
Maarten Bent
bb4c920fd5 Add CMake CI job for universal macOS build 2025-05-16 18:26:16 +02:00
Vadim Zeitlin
d58ea70b3f Switch Xcode builds to arm64 from x86_64
It doesn't seem necessary to use the non-native arch, perhaps using the
native one can be a bit faster.
2025-05-10 15:13:22 +02:00
Vadim Zeitlin
60a0ff0f8f Remove one wxOSX CI build
We had 2 pretty similar builds running on our own runner and on GitHub
one, leave just one of them.
2025-05-10 15:13:22 +02:00
Vadim Zeitlin
b68a9da592 Use ccache in Mac CI builds
Install it using the same action we use for Unix builds and put the
directory containing its wrappers in the PATH.

Note that we need to do it after adding Homebrew directory to the PATH
because it isn't there by default on our self-hosted runner even if it
is on GitHub Actions ones.
2025-05-10 15:12:47 +02:00
AliKet
9495129c5e wxQt: Fix GitHub Actions failure when downloading Qt 6.8.*
See #25332.
2025-04-22 01:28:00 +02:00
AliKet
7434ba2b65 wxQt: Add Github Actions to run wxQt 6.8 under Windows 2025-03-12 09:11:04 +01:00
Vadim Zeitlin
7637e9d6e6 Run go-httpbin locally for MSW CI jobs on GitHub too
Do it for the same reason as we do it on appveyor: the main/default
endpoint is unreliable and may not accept connections, results in
spurious test failures.
2025-03-02 23:30:22 +01:00
Vadim Zeitlin
87ee0d67ad Leave PCH enabled just for one wxGTK build
Disable it for wxX11, wxDFB and wxQt builds as this helps to catch
errors hidden when using PCH.

See #25176.
2025-02-18 00:54:27 +01:00
Vadim Zeitlin
6a914b99a9 Switch some GitHub Actions builds from Ubuntu 22.04 to 22.04
It makes sense to test the newest Ubuntu version more than ~3 year old
one.
2025-02-15 18:18:43 +01:00
Vadim Zeitlin
5104110746 Run Ubuntu 20.04 CI build using clang in a container
Ubuntu 20.04 will be dropped by GitHub Actions soon, so we can't use it
any more, but switching this build to a newer Ubuntu version doesn't
work because of #25168, so keep running it under 20.04 but use a
container for it.

Fix some check for matrix.container to really test that we're not using
Ubuntu 18.04 container (which is incompatible with the Node.JS version
used by GitHub Actions) instead of testing that we use some container.
2025-02-15 18:17:26 +01:00
Vadim Zeitlin
858e2eddc0 Use ubuntu-latest for checks not relying on any specific version
For the checks running simple shell scripts, any Ubuntu version should
work, so switch them to use the latest one to avoid having to update
them every time when an existing version is dropped by GitHub Actions.
2025-02-12 19:04:51 +01:00
Vadim Zeitlin
9eda29ade3 Revert "Work around ASAN crashes with latest Ubuntu 22.04 image"
This reverts commit ced23e24d6 as the
problem should be fixed on GitHub Actions, see

https://github.com/actions/runner-images/issues/9491#issuecomment-2010912636
2025-02-12 19:01:31 +01:00
Vadim Zeitlin
e37c98b91e Show make version in Unix/Mac CI builds too 2025-02-11 20:43:30 +01:00
Vadim Zeitlin
b5b858637f Add check for self-contained headers to a CI job
It seems wasteful to check this in all of them, so choose one with the
relatively short running-time and do it only there.
2025-02-11 20:43:30 +01:00
Vadim Zeitlin
1984805126 Merge branch 'allheaders-in-allheaders'
Include all headers in tests/allheaders.h and add a check verifying that
all of them are included.

Closes #25126.
2025-01-31 17:32:06 +01:00
Lauri Nurmi
f88a0a933d Add a script and CI action for tests/allheaders.h
Check that all headers are either #included or mentioned
in tests/allheaders.h.
2025-01-31 17:32:00 +01:00
Vadim Zeitlin
c4b58317f0 Disable long path test under Wine
This seems to result in failures in the subsequent tests in some weird
way.
2025-01-18 17:04:50 +01:00
Lauri Nurmi
87c1aae252 Fix double negatives used with 'neither'
Replace most 'neither' words introduced after 2b0ee48ef7
(Fix double negatives used with 'neither', 2023-11-25)
with 'either'.

All changes are to comments only.

Closes #24999.
2024-12-11 17:57:46 +01:00
Vadim Zeitlin
db9adea6e4 Stop using checkout and other actions for Ubuntu 18.04 CI builds
Even actions/checkout@v3 doesn't work in the container any longer,
because none of JS actions can run on Ubuntu 18.04 which doesn't have a
new enough glibc version any longer, so perform the checkout manually.

Disable ccache for the builds using this OS too for the same reason:
even though we could install ccache itself manually too, we don't have
any easy way to save and restore its cache without this action.

Also disable wxWebRequest tests using httpbin which can't be easily
installed.

The diff to httpbin.sh is best viewed ignoring whitespace-only changes.

(cherry picked from commit 9d1c5b108c)

See #24983.
2024-12-02 01:17:07 +01:00
Vadim Zeitlin
9eda19f643 Merge branch 'samples-vcxproj'
Add MSVC projects for all samples.

See #24937.
2024-11-27 01:08:34 +01:00
Ulrich Telle
57e1c9e1ee Update wxWidgets language database and improve locale matching
This commit improves the best locale match algorithm by prioritizing
closer matches and add many new tests verifying that this works as
expected.

In order to do this, new information had to be added to the language
database, which was extended with it and updated to use the latest
Unicode CLDR data and latest Windows 11 locale list.

Further, add a set of scripts for maintaining the language database up
to date and a GitHub workflow `genlangdb.yml` which can be run manually
to regenerate the wxWidgets language-related source and header files
from the underlying Windows and Unicode data. It produces 2 artifacts:

- wxLanguageDatabaseDist.zip allows to easily update the
  language-related files in the wxWidgets repository by simply copying
  all files.
- the normal workflow log and wxLanguageDatabaseLog.zip allow to check
  all temporary files of the regeneration process and to detect
  potential issues, before the language-related files are actually
  replaced by the new ones.

Finally, fix wxUILocaleImplName::GetPreferredUILanguages: Under Windows
10 and above the Windows API function ::GetUserPreferredUILanguages()
returns only the primary UI language plus US English. Additional
preferred UI languages installed by the user are ignored, so instead of
using this function read the list of user preferred languages from the
Windows registry.

Closes #24855.
2024-11-18 16:46:25 +01:00
Vadim Zeitlin
606abaec97 Build all samples in non-ARM GitHub MSW CI job
We can't do this when targeting ARM because all projects don't have ARM
configurations in them. To add them would require making the same
changes to all the 100+ projects as were done in f825661df1 (Improve
ARM64 support in wxMSW, 2024-06-14) in minimal.vcxproj, which will have
to wait until someone has time to automate it.
2024-11-03 21:34:43 +01:00
Vadim Zeitlin
6323109829 Exclude generated Perl scripts from whitespace checks
App::FatPacker adds a lot of extra whitespace but we don't really care
about it in the generated files, so just skip them in the corresponding
check.
2024-11-03 20:11:44 +01:00
Vadim Zeitlin
7a1bfc4f30 Exit with error if UBSAN detects any failures
By default, UBSAN doesn't stop the program and so the exit code is still
0 even if errors are detected, so set halt_on_error=1 in UBSAN_OPTIONS
to change this.

But also still rerun the tests normally, without halting, to detect all
UB occurrences if there is more than one instance of it.
2024-10-21 21:23:07 +02:00
Vadim Zeitlin
4875fa30b1 Add a CI job using UBSAN
Reuse one of the existing builds to enable UBSAN.
2024-10-20 17:29:24 +02:00
Vadim Zeitlin
8d234aa5e9 Run macOS CI builds using macos-14 GitHub image
"macos-12" one is deprecated and will be removed soon.
2024-10-18 19:37:49 +02:00
Vadim Zeitlin
053eddb48a Install Go 1.21 or later as it is required by go-httpbin
The latest go-httpbin version uses log/slog library only available
starting from this Go version, so ensure that we have it on our
self-hosted runner used for Mac CI builds.
2024-09-05 16:13:10 +02:00
Vadim Zeitlin
8e19550692 Fix wxExecute() tests exclusion in cross-MSW CI job
It would be good to find out which test exactly hangs and, ideally,
understand why does it happen but for now just exclude them as we did
before the CppUnit cleanup in the test.
2024-08-05 13:18:22 +02:00
Jon Kunkee
f825661df1 Improve ARM64 support in wxMSW
Add ARM64 and ARM64EC platforms to MSVS projects and solutions.

Improve ARM-related documentation.

Closes #24615.
2024-07-07 01:17:22 +02:00
ali kettab
8567dfd08c Added SelectItemMultiInteractive test case to TreeCtrlTestCase
Selecting multiple items (in wxTreeCtrl with wxTR_MULTIPLE flag) and then
deselecting them by clicking on the current item that is also part of the
selection should deselect everything but the current item without starting
to edit that item.
2024-07-06 20:31:49 +01:00
ali kettab
6bcac8e481 Get rid of CppUnit boilerplate in wxTreeCtrl unit tests
Exclude UI tests dependent on wxUIActionSimulator (i.e. those added with
WXUISIM_TEST), they were previously ignored under wxOSX anyway.

Also, exclude only LabelEdit testcase instead of the entire TreeCtrlTestCase
when running under Wine.
2024-07-06 20:31:48 +01:00
Vadim Zeitlin
3dcec41ed3 Update configure CI jobs to use macOS 12 runners too
See #24684.
2024-07-06 15:28:07 +02:00