RESOLVED FIXED Bug 202384
Resurrect Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=202384
Summary Resurrect Mac CMake build
Alex Christensen
Reported 2019-09-30 17:33:58 PDT
Resurrect Mac CMake build
Attachments
Patch (42.89 KB, patch)
2019-09-30 17:34 PDT, Alex Christensen
no flags
Alex Christensen
Comment 1 2019-09-30 17:34:36 PDT
Don Olmstead
Comment 2 2019-09-30 17:51:18 PDT
Comment on attachment 379864 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=379864&action=review > Source/JavaScriptCore/PlatformMac.cmake:26 > + API/JSCallbackFunction.h > API/JSContext.h > + API/JSContextPrivate.h > API/JSExport.h > API/JSManagedValue.h > API/JSStringRefCF.h > API/JSValue.h > + API/JSValuePrivate.h This shouldn't be in public framework headers. This should just be stuff included by JavaScriptCore.h. Is there a reason you added these? They should all be in the private headers definition below. > Source/WebKitLegacy/PlatformMac.cmake:10 > "${WEBKITLEGACY_DIR}/mac" > - "${WEBKITLEGACY_DIR}/mac/Carbon" > - "${WEBKITLEGACY_DIR}/mac/DefaultDelegates" > - "${WEBKITLEGACY_DIR}/mac/DOM" > - "${WEBKITLEGACY_DIR}/mac/History" > - "${WEBKITLEGACY_DIR}/mac/icu" > - "${WEBKITLEGACY_DIR}/mac/Misc" > - "${WEBKITLEGACY_DIR}/mac/Panels" > - "${WEBKITLEGACY_DIR}/mac/Plugins" > - "${WEBKITLEGACY_DIR}/mac/Plugins/Hosted" > - "${WEBKITLEGACY_DIR}/mac/Storage" > - "${WEBKITLEGACY_DIR}/mac/WebCoreSupport" > - "${WEBKITLEGACY_DIR}/mac/WebInspector" > - "${WEBKITLEGACY_DIR}/mac/WebView" > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders" > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore" > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebKitLegacy" This isn't right this should only have additional mac related directories in here which you've deleted. The root CMakeLists.txt has "${WebCore_PRIVATE_FRAMEWORK_HEADERS_DIR}". If something is in WebCore and its being included through "Foo.h" rather than <WebCore/Foo.h> that's wrong. The forwarding headers for WebKitLegacy aren't meant to be included either they're just copies for the next project. I think you copying here is why you got this built but you removed the includes for the individual directories above.
Alex Christensen
Comment 3 2019-09-30 22:36:28 PDT
(In reply to Don Olmstead from comment #2) > Comment on attachment 379864 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=379864&action=review > > > Source/JavaScriptCore/PlatformMac.cmake:26 > > + API/JSCallbackFunction.h > > API/JSContext.h > > + API/JSContextPrivate.h > > API/JSExport.h > > API/JSManagedValue.h > > API/JSStringRefCF.h > > API/JSValue.h > > + API/JSValuePrivate.h > > This shouldn't be in public framework headers. This should just be stuff > included by JavaScriptCore.h. This is necessary to get it to build for now. We can iron out the details once engineers are actually using it. > > Is there a reason you added these? They should all be in the private headers > definition below. > > > Source/WebKitLegacy/PlatformMac.cmake:10 > > "${WEBKITLEGACY_DIR}/mac" > > - "${WEBKITLEGACY_DIR}/mac/Carbon" > > - "${WEBKITLEGACY_DIR}/mac/DefaultDelegates" > > - "${WEBKITLEGACY_DIR}/mac/DOM" > > - "${WEBKITLEGACY_DIR}/mac/History" > > - "${WEBKITLEGACY_DIR}/mac/icu" > > - "${WEBKITLEGACY_DIR}/mac/Misc" > > - "${WEBKITLEGACY_DIR}/mac/Panels" > > - "${WEBKITLEGACY_DIR}/mac/Plugins" > > - "${WEBKITLEGACY_DIR}/mac/Plugins/Hosted" > > - "${WEBKITLEGACY_DIR}/mac/Storage" > > - "${WEBKITLEGACY_DIR}/mac/WebCoreSupport" > > - "${WEBKITLEGACY_DIR}/mac/WebInspector" > > - "${WEBKITLEGACY_DIR}/mac/WebView" > > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders" > > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebCore" > > + "${DERIVED_SOURCES_DIR}/ForwardingHeaders/WebKitLegacy" > > This isn't right this should only have additional mac related directories in > here which you've deleted. > > The root CMakeLists.txt has "${WebCore_PRIVATE_FRAMEWORK_HEADERS_DIR}". If > something is in WebCore and its being included through "Foo.h" rather than > <WebCore/Foo.h> that's wrong. The forwarding headers for WebKitLegacy aren't > meant to be included either they're just copies for the next project. I > think you copying here is why you got this built but you removed the > includes for the individual directories above. This is unfortunately the cleanest way to get WebKitLegacy to build. It has lots of ObjC headers that are included with #import <WebKitLegacy/Header.h> and #import "Header.h" and it was determined that this was cleaner than making them consistent, which we do not intend to do.
Alex Christensen
Comment 4 2019-09-30 23:30:19 PDT
I confirmed that moving the headers to the list of private headers makes it fail to build jsc. We'll fix the publicness of headers later. http://trac.webkit.org/r250550
Radar WebKit Bug Importer
Comment 5 2019-09-30 23:31:19 PDT
Konstantin Tokarev
Comment 6 2019-10-01 05:55:20 PDT
Will we have buildbot for Mac/cmake? Otherwise it will bitrot quickly
Alex Christensen
Comment 7 2019-10-01 08:43:45 PDT
fixing...
Note You need to log in before you can comment on or make changes to this bug.