[MacPorts] #20199: qt4-mac fails to build when conflicting ports are active

MacPorts noreply at macports.org
Wed Jun 30 14:16:09 PDT 2010


#20199: qt4-mac fails to build when conflicting ports are active
-----------------------------------+----------------------------------------
  Reporter:  jwhowse4@…            |       Owner:  michaelld@…           
      Type:  defect                |      Status:  reopened              
  Priority:  Normal                |   Milestone:                        
 Component:  ports                 |     Version:  1.7.1                 
Resolution:                        |    Keywords:                        
      Port:  qt4-mac               |  
-----------------------------------+----------------------------------------

Comment(by michaelld@…):

 (Apologies to those on ticket #25459 where I posted this accidentally
 already.)

 So I think the issues are:

 * For system-provided features (e.g., sqlite3), the include header path is
 added to the CXXFLAGS, which comes immediately after the ${CXX} command
 and before ${DEFINES}. Qt provides a variable INCLUDEPATH that is used for
 all of the other includes. So, I've created a post-patch reinplace to get
 Qt into appending any external header path to the end of the INCLUDEPATH
 instead of it being the first path -- this should provide a temporary (and
 reasonably quick) solution. The values being appended are for CFLAGS, so
 ideally they would be split into "-I stuff" and "the rest" and appended to
 those variables separately -- takes too long to work out how to do that,
 and this patch should work (I'm testing it right now to verify that
 ${prefix}/include is listed -after- the other -I directories).

 * For many of Qt's 3rd-party extensions, #include's just use the filename,
 e.g.,
 {{{
 #include "KURL.h"
 }}}
 instead of a subdirectory that would better define the ownership of the
 file, e.g.,
 {{{
 #include "platform/KURL.h"
 }}}
 When developing a modern reasonably complex project that expects to
 #include from system or user-installed headers, it's -always- wise to both
 install into and use directory names for those headers in order to avoid
 #include'ing the incorrect file.

 * With respect to the previous point, the 'sqlite3' port installs 2 header
 files directly into ${prefix}/include -- it's this directory that Qt is
 picking up and including in the CXXFLAGS before all other header paths.
 So, moving sqlite3's headers into ${prefix}/include/sqlite3 would probably
 fix this issue as well.

-- 
Ticket URL: <http://trac.macports.org/ticket/20199#comment:79>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list