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

Reply via email to