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