<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>54466</bug_id>
          
          <creation_ts>2011-02-15 09:06:05 -0800</creation_ts>
          <short_desc>[Qt] Qt build system can&apos;t handle removing headers from tree</short_desc>
          <delta_ts>2011-02-16 07:49:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>hausmann</cc>
    
    <cc>kbalazs</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351328</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-15 09:06:05 -0800</bug_when>
    <thetext>(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&apos;t added
to HEADERS of JavaScriptCore.pro and qmake didn&apos;t regenerate makefile:

make[1]: *** No rule to make target `../../../Source/JavaScriptCore/runtime/CollectorHeapIterator.h&apos;, needed by `obj/release/Debugger.o&apos;.  Stop.
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/oszi/WebKit/WebKitBuild/Release/JavaScriptCore&apos;
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&apos;t added to HEADERS of WebKit2.pro and 
qmake didn&apos;t regenerate makefile:

make[1]: Entering directory `/home/webkit/WebKit-qt-ews/WebKitBuild/Release/WebKit2&apos;
make[1]: *** No rule to make target `../../../Source/JavaScriptCore/runtime/GCHandle.h&apos;, needed by `obj/release/ConnectionQt.o&apos;.  Stop.
make[1]: Leaving directory `/home/webkit/WebKit-qt-ews/WebKitBuild/Release/WebKit2&apos;
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&apos;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?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351348</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-02-15 09:31:44 -0800</bug_when>
    <thetext>I vote for removing Makefiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351351</commentid>
    <comment_count>2</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2011-02-15 09:33:22 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Unfortunately non-existant dependency cause build breakage. :(
&gt; I have ideas how can we fix this kind of failures:
&gt; - 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&apos;t cost much more time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351400</commentid>
    <comment_count>3</comment_count>
      <attachid>82485</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-15 10:41:42 -0800</bug_when>
    <thetext>Created attachment 82485
proposed fix

Removing makefiles won.

I tested the patch and works correctly without runtime penalty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352061</commentid>
    <comment_count>4</comment_count>
      <attachid>82485</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-16 07:42:15 -0800</bug_when>
    <thetext>Comment on attachment 82485
proposed fix

&gt; without runtime penalty.
I&apos;ll trust you on that. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352067</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-16 07:49:33 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/78708</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82485</attachid>
            <date>2011-02-15 10:41:42 -0800</date>
            <delta_ts>2011-02-16 07:49:47 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>1.patch</filename>
            <type>text/plain</type>
            <size>1243</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA3ODU4NSkKKysrIFRvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC0zNzIsNiArMzcyLDEwIEBACiAKIG15ICRwcm9k
dWN0RGlyID0gcHJvZHVjdERpcigpOwogCisjIFJlbW92ZSBRdCBtYWtlZmlsZXMgZnJvbSBwcm9k
dWN0RGlyLgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ0NjYK
K0ZpbGU6OkZpbmQ6OmZpbmQoc3ViIHt1bmxpbmsgJEZpbGU6OkZpbmQ6Om5hbWUgaWYgJEZpbGU6
OkZpbmQ6Om5hbWUgPX4gbS9NYWtlZmlsZS87fSwgJHByb2R1Y3REaXIpIGlmIChpc1F0KCkgJiYg
IWlzU3ltYmlhbigpICYmIC1lICRwcm9kdWN0RGlyKTsKKwogIyBSZW1vdmUgMCBieXRlIHNpemVk
IGZpbGVzIGZyb20gcHJvZHVjdERpciBhZnRlciBzbGF2ZSBsb3N0IGZvciBRdCBidWlsZGJvdHMu
CiBGaWxlOjpGaW5kOjpmaW5kKFwmdW5saW5rWmVyb0ZpbGVzLCAkcHJvZHVjdERpcikgaWYgKGlz
UXQoKSAmJiAhaXNTeW1iaWFuKCkgJiYgLWUgJHByb2R1Y3REaXIpOwogCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3ODU4NSkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEx
LTAyLTE1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBRdCBidWlsZCBzeXN0
ZW0gY2FuJ3QgaGFuZGxlIHJlbW92aW5nIGhlYWRlcnMgZnJvbSB0cmVlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDQ2NgorCisgICAgICAgICogU2Ny
aXB0cy9idWlsZC13ZWJraXQ6IFJlbW92ZSBRdCBtYWtlZmlsZXMgZnJvbSBwcm9kdWN0RGlyIGJl
Zm9yZSBidWlsZC4KKwogMjAxMS0wMi0xNSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmljaGlybyBIYW1hamkuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>