Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1dc64ec88d623774c090964a87ca272169b2600a
      
https://github.com/WebKit/WebKit/commit/1dc64ec88d623774c090964a87ca272169b2600a
  Author: Geoffrey Garen <[email protected]>
  Date:   2026-06-08 (Mon, 08 Jun 2026)

  Changed paths:
    M CMakeLists.txt
    M Source/ThirdParty/ANGLE/PlatformCocoa.cmake
    M Source/WTF/Scripts/generate-unified-source-bundles.py
    M Source/WTF/wtf/PlatformCocoa.cmake
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/PlatformCocoa.cmake
    M Source/WebCore/WebCoreMacros.cmake
    M Source/cmake/OptionsCocoa.cmake
    M Source/cmake/OptionsMac.cmake
    M Source/cmake/WebKitCommon.cmake
    M Source/cmake/WebKitHeaderMap.cmake
    M Source/cmake/WebKitMacros.cmake
    M Tools/Scripts/generate-header-map
    M Tools/Scripts/hmaptool

  Log Message:
  -----------
  [CMake] Optimize configuration
https://bugs.webkit.org/show_bug.cgi?id=316493
rdar://178919004

Reviewed by Mike Wyrzykowski.

Saves about 5s in a clean build. (Worth 120 CPUs on a Mac Studio, since
configuration is single-core and blocks the rest of the build).

* CMakeLists.txt: Moved header map generation to be a single Python invocation
at the end of configuration, instead of one invocation per target, since each
invocation costs like 150ms.

* Source/ThirdParty/ANGLE/PlatformCocoa.cmake: Only search for ZLib if needed.

* Source/WTF/Scripts/generate-unified-source-bundles.py: Run
--print-bundled-sources during --generate-bundles so we can run this script once
instead of twice.

* Source/WTF/wtf/PlatformCocoa.cmake: Use absolute paths when specifying
dependencies because absolute paths get the O(1) hash table treatment in
depdendency resolution while relative paths get the O(N^2) linear scan 
treatment.

* Source/WebCore/PlatformCocoa.cmake: Only search for SQLite and ZLib if needed.

* Source/WebCore/WebCoreMacros.cmake: Use absolute paths. (See above.)

* Source/cmake/OptionsCocoa.cmake: No need to search for things that we know
are in the SDK. They have no other location.

* Source/cmake/OptionsMac.cmake: Stop erroring when using a newer SDK to target
an older OS. This is a supported configuration (for downlevels), and the warning
was crufting up my output.

* Source/cmake/WebKitCommon.cmake: Stop launching Ruby 16 times to evaluate all
its features; we just need a version number.

* Source/cmake/WebKitHeaderMap.cmake: Put all header map manifests in one place
so they're easy to find at the end of configuration, for a single pass of header
map generation.

* Source/cmake/WebKitMacros.cmake: generate-unified-source-bundles.py only needs
to run once now.

Use absolutely paths to avoid the O(N^2) behavior. (See above.)

* Tools/Scripts/generate-header-map: Search for all header map manifests in a
single folder and generate them all. (Used to avoid lauching Python once per
target. There are many targets.)

* Tools/Scripts/hmaptool: Factored write_headermap into a helper function so we
can call it more than once for more than one manifest.

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



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

Reply via email to