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