[Git][wxwidgets/wxwidgets][master] 27 commits: CMake: Install cmake files into a versioned directory

0 views
Skip to first unread message

Vadim Zeitlin (@_VZ_)

unread,
Sep 8, 2025, 9:01:13 AMSep 8
to wx-commi...@googlegroups.com

Vadim Zeitlin pushed to branch master at wxWidgets / wxWidgets

Commits:

  • 502a8393
    by Chris Mayo at 2025-09-02T19:27:49+01:00
    CMake: Install cmake files into a versioned directory
    
    Under wxBUILD_INSTALL_LIBRARY_DIR.
    
  • 3d2185bb
    by Chris Mayo at 2025-09-03T19:34:47+01:00
    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>
    
  • b4b3fa65
    by Chris Mayo at 2025-09-04T19:22:15+01:00
    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.
    
  • 87d2601f
    by Chris Mayo at 2025-09-05T19:26:30+01:00
    CMake: Support finding system libwebp using pkg-config
    
    Installing libwebp using autotools is still supported.
    
  • 4d369c80
    by Chris Mayo at 2025-09-07T19:02:29+01:00
    CMake: Use QUIET with find_package(PkgConfig) for libwebp
    
  • 63e4e8e3
    by Chris Mayo at 2025-09-07T19:21:10+01:00
    CMake: Remove find_package(WebP) from webp.cmake
    
    find_package(WebP) has already been called because options.cmake
    uses wx_add_thirdparty_library().
    
  • cd00085b
    by Vadim Zeitlin at 2025-09-07T23:17:39+02:00
    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.
    
  • fa4072e3
    by Vadim Zeitlin at 2025-09-08T00:02:28+02:00
    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.
    
  • 5ab553fc
    by Vadim Zeitlin at 2025-09-08T00:03:50+02:00
    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.
    
  • 8efb18de
    by Vadim Zeitlin at 2025-09-08T00:04:34+02:00
    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.
    
  • 359bd161
    by Vadim Zeitlin at 2025-09-08T00:07:48+02:00
    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.
    
  • 8532ed91
    by Vadim Zeitlin at 2025-09-08T00:17:30+02:00
    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.
    
  • 0d76e11f
    by Vadim Zeitlin at 2025-09-08T00:18:37+02:00
    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.
    
  • 5ef4bcef
    by Vadim Zeitlin at 2025-09-08T01:07:55+02:00
    Warn if wayland-client or wayland-scanner are not found
    
    If these warnings are annoying, Wayland support can be explicitly
    disabled to avoid them.
    
  • 03fa77ec
    by Vadim Zeitlin at 2025-09-08T01:07:55+02:00
    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).
    
  • af750b64
    by Vadim Zeitlin at 2025-09-08T01:13:24+02:00
    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.
    
  • 74d75d42
    by Václav Slavík at 2025-09-08T14:17:17+02:00
    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.
    
  • 40830d3b
    by Václav Slavík at 2025-09-08T14:17:17+02:00
    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.
    
  • cc0fd2c1
    by Václav Slavík at 2025-09-08T14:17:17+02:00
    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
    
  • 90c1859a
    by Václav Slavík at 2025-09-08T14:17:17+02:00
    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.
    
  • de9c85f2
    by Václav Slavík at 2025-09-08T14:17:17+02:00
    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.
    
  • d083668c
    by Vadim Zeitlin at 2025-09-08T14:28:21+02:00
    Merge branch 'wx_cmake_dir' of github.com:cjmayo/wxWidgets
    
    CMake: Install cmake files into a versioned directory.
    
    See #25757.
    
  • 5c97a297
    by Václav Slavík at 2025-09-08T14:28:41+02:00
    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.
    
  • f1463f2e
    by Vadim Zeitlin at 2025-09-08T14:29:08+02:00
    Merge branch 'libwebp' of github.com:cjmayo/wxWidgets
    
    CMake: Support finding system libwebp using pkg-config too,
    
    See #25763.
    
  • affc1b2d
    by Blake-Madden at 2025-09-08T14:53:41+02:00
    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.
    
  • 78b2cb52
    by Vadim Zeitlin at 2025-09-08T14:54:29+02:00
    Merge branch 'use-wayland-scanner'
    
    Use wayland-scanner at build time instead of pre-generated files.
    
    See #25769.
    
  • b6f1b6d8
    by Vadim Zeitlin at 2025-09-08T14:56:14+02:00
    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.
    

31 changed files:

The diff was not included because it is too large.
Reply all
Reply to author
Forward
0 new messages