CMake: Install cmake files into a versioned directory Under wxBUILD_INSTALL_LIBRARY_DIR.
CMake: Fix wx_get_install_dir on MS Windows On installation: CMake Error at cmake_install.cmake:3338 (file): file cannot create directory: C:/Program Files (x86)/wxWidgets/$<PATH:CMAKE_PATH,NORMALIZE,lib$<1:/>clang_x64_dll/cmake/wxWidgets-3.3/clang_x64_dll>. Also prevents a trailing "/" being added to the wxBUILD_INSTALL_*_DIR on other platforms. Suggested-by: Maarten Bent <Maart...@users.noreply.github.com>
CMake: Add a wx_get_build_install_dir macro On MSW/MSVC with wxMSW .cmake files were being installed into: C:/Program Files (x86)/wxWidgets/lib/vc_x64_dll/cmake/wxWidgets-3.3/ which is not in the search path. Add a wx_get_build_install_dir macro which allows a directory to be retrived without wxPLATFORM_LIB_DIR appeneded, even on platforms that use it.
CMake: Support finding system libwebp using pkg-config Installing libwebp using autotools is still supported.
CMake: Use QUIET with find_package(PkgConfig) for libwebp
CMake: Remove find_package(WebP) from webp.cmake find_package(WebP) has already been called because options.cmake uses wx_add_thirdparty_library().
Add wxUSE_WAYLAND option allowing to disable Wayland support Allow disabling Wayland support by passing --without-wayland option to configure or -DwxUSE_WAYLAND=0 to CMake if it is undesirable for whatever reason.
Generate Wayland protocol code using wayland-scanner at build time 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.
Revert "Exclude headers generated by wayland-scanner from code checks" This reverts commit c375a91dd6b3129f40ce701485d472d8eda43daa as it's not needed any longer because the files in question are not present in the repository any more.
Revert "Also exclude wayland-scanner-generated sources from space checks" This reverts commit 63707e27679d8da70ba865da2c4561905daa4904 for the same reason as in the previous commit: the generated sources are not stored in the repository any longer.
Revert "Fix compilation with old Wayland client protocol headers" This reverts commit ceace944b275631aae631766b4c9bf6bb37caaa4 because the pointer-wrap protocol header generated on the build system should be compatible with its Wayland version and so this hack is not needed any more.
Explicitly create protocols output directly for CMake/make Ninja is smart enough to create output directories on its own, but when using make generator we need to do it ourselves.
Fix wrong test for WAYLAND_CLIENT in CMake Correct the test added in 147458e0ed (Use wp_pointer_warp_v1 if available in wxWindow::WarpPointer(), 2025-07-28) which was missing the module to check for.
Warn if wayland-client or wayland-scanner are not found If these warnings are annoying, Wayland support can be explicitly disabled to avoid them.
Improve handling of wayland-client in CMake Add only WAYLAND_CLIENT_INCLUDE_DIRS to wxTOOLKIT_INCLUDE_DIRS instead of adding WAYLAND_CLIENT_CFLAGS to them as CFLAGS might, in theory, contain something else. For now just ignore any non -I options from CFLAGS (there shouldn't be any, normally).
Remove wayland-protocols CMake custom command Generate the required files during the configure step instead, we don't really need to ever regenerate them, so this is simpler and doesn't take any time when building later.
Don't set NSView.clipsToBounds = YES globally In 991a74c wxWidgetImpl was changed to set clipsToBounds = YES globally, to prevent new behavior in macOS 14, where views' rendering can extend outside the view area, from applying to wxWidgets. This was to prevent rendering artifacts (see e.g. #23916) because wxWindow rendering being clipped to its area is arguably part of wxWindow API contract. This however breaks rendering of several controls (most prominently single-line wxTextCtrl) on macOS 26 Tahoe, and possibly more subtly earlier too. To avoid this, change the code to force clipsToBounds only on non-native wxWindows and leave it as-is (which is false on macOS >= 14) for native ones, so that their rendering isn't disrupted. Also add a semi-private wxWindow::MacClipsToBounds() method to allow customizing this behavior. This is important for e.g. generic composite controls that may be packed too tight and clip their children. This fixes broken rendering of wxTextCtrl and wxSpinButton on macOS 26.
Fix wxCollapsiblePane button size on macOS Increase the size so that it is full rendered including its shadows. Previously, shadows were subtly cut off on macOS 11+ as well as macOS 26.
Improve wxSpinCtrl sizing and appearance on macOS Multiple improvements to wxSpinCtrl/wxSpinButton appearance: - fixes broken rendering on macOS 26 (clipped borders) - corrects wxSpinButton sizes (note that NSStepper doesn't dynamically adjust to the size it is set to, but renders at a constant size) - adds typically used margin between the stepper and the text field - removes unreachable code in wxWindowMac::DoGetBestSize
Improve default button size on macOS wxOSX's default was a bit too larger on at least macOS 11+. The new value is still slightly larger than what Interface Builder creates by default, but matches the size used in native file open windows (on macOS 26, it is 1pt larger on macOS 15, but that's not noticeable and not worth complicating the code for). Note that native AppKit apps often use even smaller button sizes.
Fix wxTextCtrl sizes on macOS, particularly 26 Slightly tweak hardcoded sizes to correspond to natively used sizes. Note that this code is only used in e.g. generic controls whrere native peer view isn't available yet; normally sizing is done natively. Adjust the sizes for macOS 26, where text fields are larger. Make sure the size is never smaller than NSMiniControlSize one; for some reason wxNSTextFieldControl::GetBestSize() did calculate slightly smaller fitting size. The mini size is so small that using it as hard cap seems reasonable.
Merge branch 'wx_cmake_dir' of github.com:cjmayo/wxWidgets CMake: Install cmake files into a versioned directory. See #25757.
Guard macOS 26 checks with __MAC_OS_X_VERSION_MAX_ALLOWED Wrap uses of WX_IS_MACOS_AVAILABLE(26, 0) with compile-time __MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_26_0 checks so that code compiled with older versions of Xcode 26 is not affects. macOS 26 doesn't apply its new appearance to applications that weren't compiled with Xcode 26+, so this is the correct thing to do: we do not want any adjustments to apply to 26-unaware code.
Merge branch 'libwebp' of github.com:cjmayo/wxWidgets CMake: Support finding system libwebp using pkg-config too, See #25763.
Initialize value to suppress false positive warning from MSVC MSVC gives a "possibly uninitialized variable" warning even if this can't happen as FromString() always fills it in if it returns true. Initialize the variable just to avoid this warning. Closes #25771.
Merge branch 'use-wayland-scanner' Use wayland-scanner at build time instead of pre-generated files. See #25769.
Merge branch 'devel/tahoe-controls-fixes' of github.com:vslavik/wxWidgets Fixes for controls appearance under macOS 26 Tahoe and also some fixes to their sizes under the previous macOS versions. See #25767.
—
View it on GitLab.
You're receiving this email because of your account on gitlab.com. Manage all notifications · Help