We only need a symlink for static sources that are included in public generated headers, because they are added with as <webkitdom/WebKitDOMFoo.h> so they need to be inside a webkitdom directory. Also use proper targets and commands to create the symlinks only when needed instead of for every build.
Created attachment 239199 [details] Patch This removes one of the targets that are always built, see bug #130075
Comment on attachment 239199 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239199&action=review > Source/WebCore/PlatformGTK.cmake:770 > +# Some of the static headers are included by generated public headers with include <webkitdom/WebKitDOMFoo.h>. > +# We need those headers in the derived sources to be in webkitdom directory. > +add_custom_command( > + OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMCustom.h > + DEPENDS ${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h > + COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR} > +) > +add_custom_command( > + OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMEventTarget.h > + DEPENDS ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h > + COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR} > +) > +add_custom_command( > + OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMNodeFilter.h > + DEPENDS ${WEBCORE_DIR}/bindings/gobject/WebKitDOMNodeFilter.h > + COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOMNodeFilter.h ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR} > +) > +add_custom_command( > + OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMObject.h > + DEPENDS ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h > + COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR} > +) > +add_custom_command( > + OUTPUT ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMXPathNSResolver.h > + DEPENDS ${WEBCORE_DIR}/bindings/gobject/WebKitDOMXPathNSResolver.h > + COMMAND ln -n -s -f ${WEBCORE_DIR}/bindings/gobject/WebKitDOMXPathNSResolver.h ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR} > +) > +add_custom_target(fake-generated-webkitdom-headers > + DEPENDS ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMCustom.h > + ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMEventTarget.h > + ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMNodeFilter.h > + ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMObject.h > + ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/WebKitDOMXPathNSResolver.h I think there are a couple ways to make this a little cleaner. One is to use a macro and a list of file names (you could even omit the directories). The other is to use a single add_custom_command with multiple outputs and dependencies.
I guess I prefer the macro solution, not sure I will find the time to learn how to do that in cmake, though.
Let me see if I can find a few moments to propose something this weekend.
Created attachment 239273 [details] Simplified version using a foreach loop Hope this is cleaner
Committed r174326: <http://trac.webkit.org/changeset/174326>