Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 96cc0562a2a0b98061a00f4915f05043bd2afaaf
https://github.com/WebKit/WebKit/commit/96cc0562a2a0b98061a00f4915f05043bd2afaaf
Author: Brandon Stewart <[email protected]>
Date: 2026-04-13 (Mon, 13 Apr 2026)
Changed paths:
M Source/ThirdParty/ANGLE/CMakeLists.txt
M Source/WebCore/WebCoreMacros.cmake
M Source/cmake/WebKitMacros.cmake
M Tools/Scripts/swift/swiftc-wrapper.sh
Log Message:
-----------
[CMake] Fix null builds taking ~90 seconds on Mac
https://bugs.webkit.org/show_bug.cgi?id=312192
rdar://174687295
Reviewed by Pascoe.
CMake Mac null builds were taking ~90 seconds due to three independent
issues that cascaded into relinking most of the project on every build.
1. GENERATE_BINDINGS used add_custom_target which is always considered
out-of-date by Ninja, invoking the Perl binding generator on every
build even when no IDL files changed. Convert to add_custom_command
with a stamp file so the generator only runs when inputs change.
Also promote generator script dependencies to CMake-level DEPENDS.
2. The swiftc-wrapper strips -output-file-map in link mode to prevent
ld from receiving the JSON as an input file, but this means swiftc
in WMO mode does not produce the individual .o files or update the
.swiftmodule that CMake's Ninja generator declares as build outputs.
Touch these paths after a successful build so Ninja does not
consider the rule perpetually out-of-date.
3. The Swift-to-C++ interop header was written directly to its final
path, so the timestamp always changed even when content was
identical, triggering recompilation of all includers. Write to a
temporary file first and use copy_if_different.
4. ANGLE-webgl-headers used add_custom_target, running
adjust-angle-include-paths.py on every build. Convert to
add_custom_command with a stamp file.
* Source/ThirdParty/ANGLE/CMakeLists.txt:
* Source/WebCore/WebCoreMacros.cmake:
* Source/cmake/WebKitMacros.cmake:
* Tools/Scripts/swift/swiftc-wrapper.sh:
Canonical link: https://commits.webkit.org/311154@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications