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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.