Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b718a228768f9e1ac6e48375063d6258bf7f3aca
      
https://github.com/WebKit/WebKit/commit/b718a228768f9e1ac6e48375063d6258bf7f3aca
  Author: Zak Ridouh <[email protected]>
  Date:   2026-10-07 (Wed, 07 Oct 2026)

  Changed paths:
    M Source/WebKit/PlatformCocoa.cmake
    M Source/WebKit/_WebKit_SwiftUI/CMakeLists.txt
    M Source/cmake/WebKitSwiftPrewarm.cmake
    M Tools/SwiftBrowser/CMakeLists.txt
    M Tools/TestWebKitAPI/PlatformCocoa.cmake

  Log Message:
  -----------
  [CMake] Schedule Swift modules before C++ compiles that can wait
https://bugs.webkit.org/show_bug.cgi?id=326445
rdar://problem/189246045

Reviewed by Elliott Williams.

ninja schedules ready edges by the number of edges below them, not by how
long they take, so WebKit's few, long Swift module edges waited behind hundreds
of short C++ compiles, and two dependencies delayed them further. Together,
these changes take about 90 s off a clean mac-dev-debug build on a 16-core Mac
and about 40 s off ios-sim-dev-debug.

* Source/WebKit/PlatformCocoa.cmake:
Raise the priority of the WebKit and WebKitSwift Swift modules. Make the
WebKitAdditions Swift copies depend only on their inputs rather than on all of
WebKit's dependencies. Stop ordering WebKit_StageSwiftModule after the WebKit
link, and sign the staged files with WebKit instead, so that Swift modules that
import WebKit can compile while WebKit's C++ objects are still building.

* Source/WebKit/_WebKit_SwiftUI/CMakeLists.txt:
Raise the priority of the _WebKit_SwiftUI Swift module.

* Source/cmake/WebKitSwiftPrewarm.cmake:
(WEBKIT_ADD_SWIFT_PREWARM):
(WEBKIT_RAISE_SWIFT_NINJA_PRIORITY): Added, from the prewarm's stamp chain. The
chain now hangs off the target's Swift objects and is 30 edges long by default,
longer than the longest path below the C++ compiles.

* Tools/SwiftBrowser/CMakeLists.txt:
* Tools/TestWebKitAPI/PlatformCocoa.cmake:
Raise the priority of these Swift modules with a short chain, since they wait
for the framework links.

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



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

Reply via email to