Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6a66090fd9250f4debc8e0053c538ec8b69ceb94
      
https://github.com/WebKit/WebKit/commit/6a66090fd9250f4debc8e0053c538ec8b69ceb94
  Author: Elliott Williams <[email protected]>
  Date:   2026-06-24 (Wed, 24 Jun 2026)

  Changed paths:
    M CMakeLists.txt
    M Source/JavaScriptCore/CMakeLists.txt
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/Headers.cmake
    M Source/WebKit/CMakeLists.txt
    M Source/WebKitLegacy/PlatformIOS.cmake
    M Source/WebKitLegacy/PlatformMac.cmake
    M Source/cmake/WebKitHeaderMap.cmake
    M Source/cmake/WebKitMacros.cmake
    R Tools/Scripts/generate-header-map

  Log Message:
  -----------
  [CMake] Fix headermap generation and use it in more places
https://bugs.webkit.org/show_bug.cgi?id=317558
rdar://180258838

Reviewed by Adrian Taylor and Geoffrey Garen.

Reimplement the headermap generation logic to be more closely aligned to
how Xcode does it, and simpler. This is needed to support copying (not
symlinking) headers into the build directory, which itself is needed to
postprocess headers so that clients can use them properly. Works toward
getting the internal SDK working for macOS builds.

Key changes:

- Entries in headermaps map to headers in their *source* location, not
  in the build directory.

- Project headers (i.e. headers which are only used in-target and are
  not installed) are tracked by new *_PROJECT_HEADERS variables, same as
  in Xcode. They are used to generate a private headermap, used only by
  the same target while it builds.

  Right now, the PROJECT_HEADERS variables are minimal and only list
  what is needed to make the build pass. Next step is to flesh out these
  lists to contain all headers. At that time it will be possible to
  remove most of the -I flags from compiler invocations for a modest
  build perf boost.

- Installed headers go to a public headermap, which supports
  bracket-style lookups. Clients of a framework get its public headermap
  added to their search paths, so they get faster lookup of that
  framework's headers.

- Headermaps are prepended to the compiler search paths, so that they
  actually take precedence over the build directory.

* CMakeLists.txt:
* Source/JavaScriptCore/CMakeLists.txt:
* Source/WebCore/CMakeLists.txt:
* Source/WebCore/Headers.cmake:
* Source/WebKit/CMakeLists.txt:
* Source/WebKitLegacy/PlatformIOS.cmake:
* Source/WebKitLegacy/PlatformMac.cmake:
* Source/cmake/WebKitHeaderMap.cmake:
* Source/cmake/WebKitMacros.cmake:
* Tools/Scripts/generate-header-map: Removed.

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



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

Reply via email to