Make ASAN CI job work again under Ubuntu Focal, disabling leak detection
if we fail to install the required dbgsym packages (as happens right
now).
Closes https://github.com/wxWidgets/wxWidgets/pull/2290
There just doesn't seem to be any way to make this work right now, so
handle dbgsym packages installation failure and disable leak detection
in this case.
Hopefully ddebs.ubuntu.com repository will be updated in the future,
allowing this to work again.
Add -dbgsym packages to extra_deps and pass them to the same apt-get
command we use for installing all the other dependencies.
This is slightly faster and also makes it simpler to pass extra options
to apt-get, as we're going to do in the next commit.
This check didn't work in configure when using C++17 or later, as
std::bind2nd() is removed in C++17 and so was worse than useless as it
actually prevented --enable-stl from working.
And while it was only done when using C++98 in CMake, it still seems
pretty useless there too as there should be no environments in which
basic stuff like std::vector<> or std::find_if() is not available.
So just remove it entirely.
X11 headers and libraries are only required if we're actually using X11
which may not be the case.
This allows to build wxGTK on the systems using Wayland-only GTK.
Using docker results in errors due to rate limit on pulling, so try to
reduce its use as much as possible. It still has to be used under Ubuntu
14.04 because it has a version of Python too old to work with HTTPS
servers using SNI and so using pip fails there.
Change "make install" to install catalog files with version suffix and
modify the sources to look for suffixed catalog first, while still
falling back to just the base name if the variant with the version is
not found, because the message catalogs are copied manually in practice
under MSW/macOS systems and so won't have the version suffix there.
This allows to make message catalogs installed by different
wxWidgets versions to coexist on the same system, see
https://groups.google.com/g/wx-users/c/L9gC8UgrO6Y
Closes https://github.com/wxWidgets/wxWidgets/pull/2219
Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
Automatically download the WebView2 SDK from nuget (official repo for the SDK)
when enabling wxUSE_WEBVIEW_EDGE to simplify usage.
Copying to 3rdparty/webview2 is still supported optionally.
Remove platform-specific translations.
This is unnecessarily complicated for the single string that we
currently use this for, so just handle it specially.
Also some other minor translation-related improvements.
See https://github.com/wxWidgets/wxWidgets/pull/2213
Put each benchmark application in a sub-directory instead of specifying all in one
file, because cotire cannot create PCH targets for the same file twice (bench.cpp).
As shown by the fact that no other platform-specific translations were
ever added since the initial version of locale/msw/it.po added way back
in 4d931bcca0 (Translate '&Help' to '&' for italian Windows only,
2005-08-12), this is not especially useful, so just handle this
particular case specially in wxGetStockLabel() and remove support for
platform-specific translations.
This allows to simplify the makefiles and the catalog loading code as
there is no need to deal with the files in subdirectories any more.
Use /Zc:throwingNew option for the compilers supporting it instead of
defaulting to compatible behaviour, which assumes that operator new can
return NULL on allocation failure, that we don't need, at least in the
release builds.
This is also slightly more efficient as it allows the compiler to avoid
generating null checks after calling new.
Closes#19069.
Simplify things by putting setup.h files themselves under version
control and getting rid of setup0.h ones.
The initial motivation for using separate setup0.h files was to allow
having local changes to setup.h, but with Git there is a simple way to
do it by using "git update-index --skip-worktree include/wx/msw/setup.h"
for example, so we don't really need setup0.h any more and dropping them
makes things simpler.
There is no way to stop a background task simply and safely with
cmd.exe, but in appveyor.yml we can use PowerShell, so use its job
support to do it instead.
This is important because AppVeyor waits until all jobs launched by the
script terminate, so without stopping the background job all builds
waited for an hour before timing out.
Don't use quotes around the value, they're not special for cmd.exe
and remain part of the actual variable value.
Co-authored-by: Maarten <MaartenBent@users.noreply.github.com>