Add wxRuntimeLibs property which is set to "dynamic" by default, but can
also be set to "static" (e.g. with "msbuild /p:wxRuntimeLibs=static") to
build the libraries using static CRT libraries.
Closes#22693.
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.
Replace them with std::string-like equivalents when possible (i.e.
replace Length() with length(), IsNull() with empty()) or, at least,
with wx 2 functions if not (e.g. Remove() with Truncate(), First() with
Find(), LowerCase() with MakeLower() etc).
Closes#22638.
It's a bit wasteful to also mention these changes in the Git notes, so
don't do it and just leave a reminder to copy the existing change log
entries from 3.2 branch instead when it's time to release 3.3.0.