Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76907

Calling "make" a 2nd time in a Qt top-level build triggers a rebuild

    XMLWordPrintable

    Details

    • Platform/s:
      Linux/X11, Windows
    • Commits:
      adaa997ce654bc7d488e887c9b7a971fc037a775 (qt/qtbase/5.12)

      Description

      When building Qt like this:

      configure ...
      make
      make
      

      The 2nd make shouldn't actually build something, but it triggers a re-build.

      Only top-level builds are affected with at least one additional submodule (e.g. qtbase + qtdeclarative).

      Bisecting result:

      224a60989ed95e8b91ac88a12666af6e5a66e619 is the first bad commit                                                                      
      commit 224a60989ed95e8b91ac88a12666af6e5a66e619                                                                                       
      Author: Joerg Bornemann <joerg.bornemann@qt.io>                                                                                       
      Date:   Fri May 31 15:06:14 2019 +0200                                                                                                
                                                                                                                                            
          Fix determination of source and build roots                                                                                       
                                                                                                                                            
          QMake searches a .qmake.conf file to determine the source root of the                                                             
          project, and a .qmake.cache to determine the build root.                                                                          
                                                                                                                                            
          If a .qmake.conf exists but no .qmake.cache in the build directory is                                                             
          found, a build root would be set that is only valid if the build                                                                  
          directory is at the same depth as the source directory.                                                                           
                                                                                                                                            
          The invalid build root resulted in the creation of .qmake.cache files                                                             
          at "interesting" locations (e.g. high up in the directory tree), a                                                                
          potential cause for even more interesting build failures in the                                                                   
          future.                                                                                                                           
                                                                                                                                            
          Fix this by splitting up the loop that determined build and source                                                                
          root. Both are now determined independently of each other.                                                                        
                                                                                                                                            
          Fixes: QTBUG-76140                                                                                                                
          Change-Id: Ib5c922b87879fcf2f076298a69abcdbc4e8587b3                                                                              
          Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>                                                                          
                                                                                                                                            
      :040000 040000 db22a795e20a747b407f70287a3dce4d16911a81 8a4e986e6486995f0811351ee19973ca49be988f M      qmake                         
      bisect run success                                  
      

        Attachments

          Issue Links

          For Gerrit Dashboard: QTBUG-76907
          # Subject Branch Project Status CR V

            Activity

              People

              • Assignee:
                jbornema Joerg Bornemann
                Reporter:
                jbornema Joerg Bornemann
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes