[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