Note that with Circle CI, an existing cache can't be modified, so we
create a new cache every time -- and then load the most recent one using
the common prefix.
This is useful now that it uses different commands for installing
packages under different systems, as it means that we don't have to
write these commands manually in the CI configuration files.
Don't hard code the path to it, even different Linux versions use
different paths, e.g. /lib/x86_64-linux-gnu under Debian and /lib64
under Fedora, so just try all the possibilities until we find something.
This is similar to the previous commit, but done in a slightly different
way to avoid changing too much of the existing code: just make "i" an
alias for the first array element to ensure that "&i + 4" is a valid
pointer.
Using "&o + N" results in an invalid address, and a perfectly reasonable
-Warray-bounds from gcc 12, so use an array of objects of sufficiently
big size for all values of N to be valid.
This seems to be https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104215 or
at least similar to it, i.e. a known false positive that we
unfortunately have to work around in this ugly way, by inserting a
compiler-specific barrier.
If we need such workarounds in other places, we should define a
wxCOMPILE_BARRIER macro or something similar, but for now it seems to be
only needed here.
This allows to avoid having an untracked file in the repository, so it
doesn't need to be ignored any longer, as it shouldn't exist after a
successful run.
Also output a warning if the log file is not empty, even though the full
dump is only shown in the GitHub workflow file, as when running the
script locally it may be more convenient to examine the log file in some
other way.
This function is useful and there is no reason to exclude it from public
API and it should have been done back in 00224e3f30 (Add
wxGrid::RefreshBlock() helper, 2019-07-11) when it was added.
This is the same thing as bd92523bc5 (Fix use of Doxygen @addtogroup
command, 2022-08-03) except it fixes comments format for all the other
occurrences of "@{" and "@}" too, not just for those used with
@addtogroup which was the problem in #22572.
This fixes many different formatting problems due to attaching various
Doxygen commands to wrong elements because of broken grouping, e.g. all
overloaded functions were documented incorrectly and there were several
problems in wxString documentation.
See #22248.
Put Doxygen grouping constructs ("@{" and "@}") in Doxygen comments
rather than plain C++ ones to make them actually take effect. Some old
Doxygen versions (~1.8.5) did recognize them even in plain comments, but
the currently uses 1.9.1 one does not and @addtogroup didn't have any
effect as the result.
This fixes the problem with the "Functions by Category" pages being
empty in the resulting HTML documentation.
See #22572.
It has been a long-time coming, see b95a7c3144 (Allow wxThread::Wait()
and Delete() to block, even under wxMSW., 2011-03-14), but do still
document that it has finally changed.
Such bitmaps can come from wxImageList but also be created directly, so
we need to handle them -- do it by converting them to DIB, if they are
not in this format yet.
This fixes black background for transparent areas in the menu bitmaps
shown for some of them.
See #22669.
Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
This used to work with the non-standard preprocessor in the older MSVC
versions, but doesn't work with the new standard-compliant one in MSVS
2022 (enabled by /Zc:preprocessor).
Luckily, it seems that we don't really need it neither, as simply
expanding the macros in a /-separated strings work with both the new and
the old preprocessors and has the same effect, so just do this instead.
Also simplify the code a little by defining wxTOOLKIT_FULL and
constructing wxSETUPH_PATH once instead of twice.
See #22654, #22680.
Co-Authored-By: Vadim Zeitlin <vadim@wxwidgets.org>
Pass compilation and matching flags using separate parameters instead of
passing them as a single int and then separating them inside the
function.
This is a bit cleaner and also avoids warning about using deprecated
enum operations when using C++20.
This completes the changes of 5477d4faa8 (Avoid warnings when combining
wxStaticText styles with C++20, 2022-07-20) which, in turn, was based on
3d278ee75f (Avoid warnings about operations on different enums in C++20
mode, 2021-04-25).
Also add a test checking that no warnings are given for all possible
enum values combinations (but this test is only useful when using
C++20).
See #22681.
It doesn't seem right that the system zlib (installed by e.g. MacPorts)
can be picked up by configure even when --disable-sys-libs is specified,
so disable its use under Mac, as libcurl is optional there.
Still use the system libcurl under Linux in the same case, however, as
it's required to have wxWebRequest at all there and dependency on it is
not really a problem in practice.
This commit is best viewed with Git --color-moved
--color-moved-ws=ignore-all-space -w options.
New version of Doxygen interprets __foo__ as Markdown markup and
consumes the underscores, which mangles the identifier.
Prevent this from happening by escaping the leading underscore for all
occurrences of "__" outside of the code blocks, this seems to be the
least intrusive fix.
See #22671.
Use wxSYS_COLOUR_GRAYTEXT, as wxSYS_COLOUR_3DLIGHT is not visible at all
on the default white background under macOS and is barely visible with
the default GTK theme.
On the flip side, it's too bright in the dark themes, but this is,
arguably, better than not being visible at all.
See #22664.
Prepend $ENV{DESTDIR}, sufficiently escaped to delay its expansion until
the execution of "cmake -E create_symlink" command, to the command path
arguments.
Closes#22653.
See #22610.
Because wxStaticText can contain arbitrary combinations of both
alignment and border flags, we need to allow using "|" on them, just as
it was done for a few other enums in 3d278ee75f (Avoid warnings about
operations on different enums in C++20 mode, 2021-04-25).
See #22656.
Closes#22657.
Linux (until recently) defined dlopen() in libdl, but some other
operating systems (such as NetBSD) have it in libc.
Use CMake-provided variable for the name of the library to use for
dlopen() to fix NetBSD build.
See #22644.
This POSIX function should be preferred to Linux/BSD-specific statfs()
if it's available (as should always be the case nowadays).
This commit is best viewed with Git --color-moved
--color-moved-ws=ignore-all-space -w options.