The following shell script demonstrates files missing from the Xcode project file for WebCore: for F in `ls WebKitBuild/Debug/DerivedSources/WebCore`; do \ if [ -z "`grep $F WebCore/WebCore.xcodeproj/project.pbxproj`" ]; then \ echo $F; \ fi; \ done Missing files: DOMCSSStyleSheetPrivate.h DOMEventPrivate.h DOMHTMLCollectionPrivate.h DOMHTMLEmbedElementPrivate.h DOMHTMLIFrameElementPrivate.h DOMHTMLObjectElementPrivate.h DOMHTMLSelectElementPrivate.h DOMSVGPointInternal.h DOMSVGRectInternal.h DOMTextEventInternal.h JSHTMLInputElementBaseTable.cpp JSSVGAnimatedPoints.cpp JSSVGAnimatedPoints.h NOTE: This may be worthwhile to run on the feature branch as well.
(In reply to comment #0) > JSHTMLInputElementBaseTable.cpp Note that this file is actually used as a header file since it's a #include in WebCore/bindings/js/JSHTMLInputElementBase.cpp.
Created attachment 16570 [details] Patch v1 Proposed fix. I removed JSSVGAnimatedPoints.h from DerivedSources.make since the generated code was not being used anyway. I did not rename JSHTMLInputElementBaseTable.cpp to JSHTMLInputElementBaseTable.h, even though this file name would make more sense since that's the way the file is used.
(In reply to comment #2) > I removed JSSVGAnimatedPoints.h from DerivedSources.make since the generated > code was not being used anyway. Added Eric to CC list in case he has any comments to add.
(In reply to comment #2) > I removed JSSVGAnimatedPoints.h from DerivedSources.make since the generated > code was not being used anyway. Hum.. SVGAnimatedPoints is an interface which is used by SVGPolyElement (not exposed in the bindings) which is the base class for SVGPolyLineElment and SVGPolygonElement I'm not sure if it needs to be compiled or not, given that it's only an interface.
I wonder if it's possible to make this script a commit-hook for *just* the xcode file (w/o slowing down the rest of svn commits).
You need to make sure to export/migrate the objective-c headers and make sure they migrated in WebKit
(In reply to comment #6) > You need to make sure to export/migrate the objective-c headers and make sure > they migrated in WebKit If they weren't migrated before, why would they need to be migrated now? (I'm not trying to be obtuse, just curious as to why they would need to be migrated.)
(In reply to comment #7) > (In reply to comment #6) > > You need to make sure to export/migrate the objective-c headers and make sure > > they migrated in WebKit > > If they weren't migrated before, why would they need to be migrated now? Oh, are they considered SPI and thus should be a part of the WebKit.framework?
DOM*Private.h is SPI and should be migrated. The other files are just internal to WebCore and should not be migrated to WebKit.
Comment on attachment 16570 [details] Patch v1 Per Comment #9, I need to make sure these headers are copied over. Not sure if that's done in the WebCore or WebKit project file (or in a script). Need to investigate further.
It is done by WebKit/MigrateHeaders.make. Just add the files to the list at the top, and make sure to migrate them to the WebKit private headers directory.
Missing files for r27253: DOMCSSStyleSheetPrivate.h DOMEventPrivate.h DOMHTMLCollectionPrivate.h DOMHTMLEmbedElementPrivate.h DOMHTMLIFrameElementPrivate.h DOMHTMLObjectElementPrivate.h DOMHTMLSelectElementPrivate.h DOMSVGException.mm DOMSVGExceptionInternal.h DOMTextEventInternal.h JSHTMLInputElementBaseTable.cpp JSSVGAnimatedPoints.cpp JSSVGAnimatedPoints.h
(In reply to comment #11) > It is done by WebKit/MigrateHeaders.make. Just add the files to the list at the > top, and make sure to migrate them to the WebKit private headers directory. Tim, is there a rule for copying header files in the MigrateHeaders.make file? There seem to be a lot of missing files if every generated *Private.h and *Internal.h file is supposed to be migrated this way: $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/*Private.h`; do \ if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ echo $F; \ fi; done | wc -l 33 $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/*Internal.h`; do \ if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ echo $F; \ fi; done | wc -l 236
(In reply to comment #13) > Tim, is there a rule for copying header files in the MigrateHeaders.make file? > There seem to be a lot of missing files if every generated *Private.h and > *Internal.h file is supposed to be migrated this way: > > $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/*Private.h`; do \ > if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ > echo $F; \ > fi; done | wc -l > 33 > > $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/*Internal.h`; do \ > if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ > echo $F; \ > fi; done | wc -l > 236 Oops! Those weren't correct. These are: $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/ | grep 'Private.h$'`; do \ if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ echo $F; \ fi; done | wc -l 0 $ for F in `ls WebKitBuild/Debug/DerivedSources/WebCore/ | grep 'Internal.h$'`; do \ if [ -z "`grep $F WebKit/MigrateHeaders.make`" ]; then \ echo $F; \ fi; done | wc -l 110
There is isn't a hard/fast rule. Only headers that are needed as public and private OS X headers need migrated. Internal headers should not be migrated.
Created attachment 16951 [details] Patch v2 Changes since Patch v1: - Removed DOMSVGException.h in addition to JSSVGAnimatedPoints.h from WebCore/DerivedSources.make. - Don't add DOMSVGPointInternal.h and DOMSVGRectInternal.h to the project file since those were already fixed. - Added *Private.h files to the Copy Generated Files Build Phase in WebCore. - Modified WebKit/MigrateHeaders.make to add the same *Private.h files that were added to the Copy Generated Headers Build Phase in WebCore. Note that I did a clean build (wiped WebKitBuild dir) of r27257 and everything built fine.
Comment on attachment 16951 [details] Patch v2 r=me
Committed r27278