Use the first value of DEPLOYMENT_TARGET_SUGGESTED_VALUES plist key
instead of MACOSX_DEPLOYMENT_TARGET.
Also drop support for using "buildSettings" key, this is something very
old and certainly not used by any of the still supported Xcode versions.
And simplify the commands used in a configure, in particular use a
single sed command with "p" modifier instead of using grep and then sed.
Link with "log" library and account for Android having gethostbyname_r()
but not getservbyname_r().
Also remove unnecessary include/wx/android/setup.h and config_android.h
files which seem to have been never used since they were added back in
1b4bff8262 (Add minimal support for building non-GUI parts of wxWidgets
for Android., 2012-02-26).
Closes#26539.
Co-authored-by: Vadim Zeitlin <vadim@wxwidgets.org>
It has not been possible to build with this option disabled for 4 years.
It appears there has been little effort to support this option since
then. For 8 years, there has been a duplicate definition of
wxUxThemeIsActive(), causing a linker warning.
Closes#26509.
Disabling it doesn't save much on code size and the build without it is
currently broken anyhow, so just remove the possibility to turn it off.
Closes#26388.
Closes#26402.
These functions are always available, as proven by #error directives in
the code never triggering for all the years they were there, so stop
checking for them and just assume they are available.
Also simplify the check for gethostbyname_r() in CMake and just test
directly if we can use the function with the given prototype, reducing
the number of checks to one in the most common case when before we made
3 of them (one extra due to checking if the function existed first and
another one due to a logical but wrong idea that we need to check for 5
before 6).
Finally, also define HAVE_FUNC_GETSERVBYNAME_R_{6,5} in CMake,
previously it never defined them at all and so reentrant functions were
never used.
The check for this pre-C99 Solaris header was added back in a49ffb32e2
(include widec.h if it's available, it contains declarations of
[f]putws() under Solaris, 2006-11-09) and shouldn't be needed any more.
CMake never checked for it, so remove the check from configure too and
then remove the now never defined HAVE_WIDEC_H.
The names of HAVE_xxx symbols are formed from upper-case name of the
corresponding function and the function is pthread_setconcurrency(), so
remove the extra underscore from the symbol name for consistency.
We don't support ancient MSVC version which didn't treat wchar_t as a
distinct type, so don't bother catering for such compilers and simplify
the code by removing the checks for wxWCHAR_T_IS_REAL_TYPE.
Also remove the checks for this from configure and CMake.
The pattern "libx*3.3" matched not just the desired symlinks, but also
the actual libraries due to "3.3" matching at the end of "3.3.3".
Fix this by making the pattern more restrictive.
The recent 94a54f68af (Fix script used to change macOS install names
with configure, 2026-02-18) broke it by using realpath not available
until macOS 13.
Return to using (nested) readlink calls.
See #25675, #26200.
This is a "forward port" of 31c8641771 (Fix script used to change macOS
install names with configure, 2026-02-18) from 3.2 branch.
See #23143, #25173, #25182, #25675.
Closes#26200.
This didn't work before, usually just silently disabling JPEG support in
libtiff because libjpeg couldn't be found, but sometimes also resulting
in build errors due to libtiff configure detecting a newer version of
libjpeg available in the system and then trying to use its features
(such as "dual 8/12 bit mode", whatever it is, in libjpeg-turbo > 3)
when building using the actually used version resulting in build errors.
The same library binary can now be used to use either GLX or EGL for
wxGLCanvas implementation instead of the choice being done at build time
(by either always using EGL if it is enabled or always using GLX
otherwise).
New wxGLCanvas::PreferGLX() function (available only if wxHAS_GLX is
defined) can be used to request using GLX even if EGL is available,
otherwise EGL is used by default, just as before.
Additionally new "opengl.egl" system option can be used to the same
effect, mostly to allow users to set "wx_opengl_egl" environment
variable to 0 to use GLX if possible, i.e. with X11 and not Wayland.
Use the same wxBase library, using native API, regardless of whether
native API (Cocoa) or wxGTK is used by wxCore when building under
macOS.
Add new and more clear and simpler to use preprocessor constants for
testing for various builds on Apple hardware.
Also fix compilation with older macOS versions and gcc (not clang).
Closes#25919.
Check that this function is declared in link.h and not just that it
exists, as we also use HAVE_DL_ITERATE_PHDR to guard link.h inclusion.
Normally it shouldn't matter as the only systems on which this function
is present are those using glibc which declares it in this header, but
it's still tidier to actually check for what we use.
Closes#25921.
This framework has apparently been deprecated since quite some time and
was removed from macOS 26, so linking with it resulted in an error.
Don't do this any longer.
Closes#25798.
Make sure that the generated code is compatible with the system we're
building on, which could not be the case before with pre-generated
files (that are now removed from the repository).
See #25721.
Closes#25768.
Allow disabling Wayland support by passing --without-wayland option to
configure or -DwxUSE_WAYLAND=0 to CMake if it is undesirable for
whatever reason.
Add code for retrieving Wayland globals to get the interface of the
protocol allowing to control mouse position under Wayland.
Because this protocol requires providing a valid last enter event
serial, also handle "enter" event on Wayland pointer interface to get
this serial, as it seems to be impossible to retrieve it from GTK, even
though it already has it internally.
This, in turn, requires handling Wayland seat addition and removal, but
this doesn't seem to have much overhead, so it's probably not a problem
to do it even for the systems that don't support the pointer warp
protocol (which is, at the time of this writing, almost all of them,
although this will hopefully change in the future).
fixup
We need to use it with the correct, i.e. existing, symbol name, which
means the mangled name actually used by the linker and not just the name
of the function as it appears in the source.
Fix the test to actually detect lack of support for .symver when using
clang with -flto.
This commit is the same as f2b844307d (Fix test for .symver asm
directive support in configure, 2025-05-25) in 3.2 branch.
See #25438.
This commit corresponds to the changes previously done in 3.2 branch in
65ad6849d1 (Fix install names of macOS shared libraries, 2025-02-19) and
30c0f6a675 (Fix readlink problem in configure build under macOS < 12,
2025-08-02) and should ensure that we always set the install names
correctly.
See #24524, #25173, #25182, #25675.
wxSocket is not really useful nowadays, but wxWebRequest is, so ensure
that wxNet library containing it still gets built even when wxSocket
support is disabled by setting wxUSE_SOCKETS=0.
This may seem useless, but it allows to use --without-subdirs and then
just do `$srcdir/regen tests/Makefile` to create a working makefile for
the unit tests without wasting time on creating a hundred of samples
makefiles.
Enable deterministic mode for binutils tools when --enable-repro-build
is used to ensure that static libraries don't contain current timestamp.
Closes#25502.
Distinguish between wxUSE_WEBVIEW being set to "no" due to
--disable-webview being explicitly used and not finding any backends.
This commit is best viewed using Git --color-moved option and ignoring
whitespace-only changes.
Closes#25500.
LIBS and LDFLAGS are used in all linker commands anyhow, there is no
need to add them to EXTRALIBS, especially because this triggers an
annoying warning about "ignoring duplicate libraries" from macOS ld.
Closes#25054.
Closes#25494.
It doesn't make sense to have wxUSE_FSVOLUME=1 in wxGTK and other Unix
ports that don't provide this class, so leave it as 0 there.
Also update the documentation to say that wxFSVolume is not implemented
under Unix, not that it doesn't make sense there because it could be
mapped to file system mount points, in theory.
This allows to use it to guard Windows-specific options.
Also drop the test for "doesnt_want_win32" which, confusingly, was not
the negation of the test for "wants_win32" and required a special
comment to explain this: instead, just don't define "wants_win32" and
reset USE_WIN32 in this case.
Don't include wxSTC dependencies in configure output when wxSTC itself
is disabled as these libraries are not built at all in this case and
trying to use them results in link errors.
Closes#25475.
Closes#25478.
Allow specifying --enable-secretstore to ensure that the library has
wxSecretStore support.
Still continue with just a warning by default.
Closes#25455.
This was broken in 01ca081d57 (Allow using system CATCH2 library in
configure, 2023-06-15) where a wrong include path was used in this case.
See #23654.