Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5a819a7b96dd31fb14d08b1525f5d0a22865d12e
      
https://github.com/WebKit/WebKit/commit/5a819a7b96dd31fb14d08b1525f5d0a22865d12e
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2026-09-15 (Tue, 15 Sep 2026)

  Changed paths:
    M Source/cmake/WebKitCommon.cmake
    M Tools/Scripts/build-webkit
    M Tools/Scripts/set-webkit-configuration
    M Tools/Scripts/webkitdirs.pm
    M Tools/Scripts/webkitperl/webkitdirs_unittest/recordBuildSettings.pl

  Log Message:
  -----------
  [cmake] calling cmake --preset should set the sticky settings on configure 
like build-webkit and set-webkit-configuration do.
https://bugs.webkit.org/show_bug.cgi?id=324135
rdar://187351168

Reviewed by Elliott Williams.

WebKitBuild/Configuration, WebKitBuild/BuildSystem and the sanitizer settings
were written only by recordBuildSettings() in webkitdirs.pm, which build-webkit
and set-webkit-configuration call. A build made straight from cmake --preset
left them naming whatever ran last, so run-safari, run-webkit-tests and the apps
built above WebKit resolved a different tree with no diagnostic.

The settings are now recorded by calling set-webkit-configuration, once while
configuring and again from a target built with ALL, so that the build made last
is the one later commands resolve. They are taken from the build directory,
except for a sanitizer tree, which is named after the sanitizer whichever
configuration built it and so takes its configuration from CMAKE_BUILD_TYPE.

cmake --preset lets us define the optimisation level and would use a dedicated
folder (e.g. DebugO3); a behaviour neither set-webkit-configuration nor
build-webkit had. We make the behaviour identical between all modes: the
optimisation level now becomes a sticky configuration and build-webkit takes a
new option.

* Source/cmake/WebKitCommon.cmake:
* Tools/Scripts/build-webkit:
* Tools/Scripts/set-webkit-configuration:
* Tools/Scripts/webkitdirs.pm:
(passedForceOptimizationLevel): Added.
(isValidForceOptimizationLevel): Added.
(recordForceOptimizationLevel): Added.
(recordBuildSettings): Record the optimization level given on the command line.
(cmakeCocoaConfigurationName): Added. Names the directory a sanitizer or a
forced optimization level builds into.
(determineConfigurationProductDir): Use it.
(webkitProductDir): Ditto, in place of its own copy of the sanitizer names.
(generateBuildSystemFromCMakeProject): Pass the optimization level as the
configuration's own compiler flags.
* Tools/Scripts/webkitperl/webkitdirs_unittest/recordBuildSettings.pl:

Canonical link: https://commits.webkit.org/321225@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to