Bug 54466 - [Qt] Qt build system can't handle removing headers from tree
Summary: [Qt] Qt build system can't handle removing headers from tree
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Major
Assignee: Nobody
URL:
Keywords: Qt, QtTriaged
Depends on:
Blocks:
 
Reported: 2011-02-15 09:06 PST by Csaba Osztrogonác
Modified: 2011-02-16 07:49 PST (History)
5 users (show)

See Also:


Attachments
proposed fix (1.21 KB, patch)
2011-02-15 10:41 PST, Csaba Osztrogonác
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2011-02-15 09:06:05 PST
(1)
http://trac.webkit.org/changeset/78382 removed JavaScriptCore/runtime/CollectorHeapIterator.h 
from the tree and it caused an incremental build failure, because this header wasn't added
to HEADERS of JavaScriptCore.pro and qmake didn't regenerate makefile:

make[1]: *** No rule to make target `../../../Source/JavaScriptCore/runtime/CollectorHeapIterator.h', needed by `obj/release/Debugger.o'.  Stop.
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/oszi/WebKit/WebKitBuild/Release/JavaScriptCore'
make: *** [sub-JavaScriptCore-JavaScriptCore-pro-make_default-ordered] Error 2


(2)
https://bugs.webkit.org/attachment.cgi?id=82390 in https://bugs.webkit.org/show_bug.cgi?id=54415
removed Source/JavaScriptCore/runtime/GCHandle.h from the tree and it caused an incremental 
build failure on Qt EWS, because this header wasn't added to HEADERS of WebKit2.pro and 
qmake didn't regenerate makefile:

make[1]: Entering directory `/home/webkit/WebKit-qt-ews/WebKitBuild/Release/WebKit2'
make[1]: *** No rule to make target `../../../Source/JavaScriptCore/runtime/GCHandle.h', needed by `obj/release/ConnectionQt.o'.  Stop.
make[1]: Leaving directory `/home/webkit/WebKit-qt-ews/WebKitBuild/Release/WebKit2'
make: *** [sub-WebKit2-WebKit2-pro-make_default-ordered] Error 2


Unfortunately non-existant dependency cause build breakage. :(
I have ideas how can we fix this kind of failures:
- Remove all MakeFile* from WebKitBuild before building to make qmake regenerate makefiles always
- Add all header files to HEADERS. (It's hard to maintain. eg in case (2) 
  we have to add a JavaScriptCore header to WebKit2.pro)
- Create a new general header.pri for all header files and include it from all pro files

What do you think about this bug?
Comment 1 Balazs Kelemen 2011-02-15 09:31:44 PST
I vote for removing Makefiles.
Comment 2 Andras Becsi 2011-02-15 09:33:22 PST
(In reply to comment #0)
> Unfortunately non-existant dependency cause build breakage. :(
> I have ideas how can we fix this kind of failures:
> - Remove all MakeFile* from WebKitBuild before building to make qmake regenerate makefiles always

For me this approach seams most feasible, too, since qmake rereads all project files anyhow on incremental builds and regenerating the Makefiles wouldn't cost much more time.
Comment 3 Csaba Osztrogonác 2011-02-15 10:41:42 PST
Created attachment 82485 [details]
proposed fix

Removing makefiles won.

I tested the patch and works correctly without runtime penalty.
Comment 4 Andreas Kling 2011-02-16 07:42:15 PST
Comment on attachment 82485 [details]
proposed fix

> without runtime penalty.
I'll trust you on that. r=me
Comment 5 Csaba Osztrogonác 2011-02-16 07:49:33 PST
Landed in http://trac.webkit.org/changeset/78708