Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 3

Qt-interest Archive, December 2007
SCons tool for Qt4 updated and bugs on pkg-config


Message 1 in thread

I updated the SCons tool[0] for Qt4 i maintain at the CLAM[1] repository[2] to 
Qt 4.3.3, the update just works for linux (debian) but I plan to update mac 
and mingw on the next days that might have become broken with the update. 
The update welcomes the new Qt modules including the still external QtWebKit 
and fixes some of the bugs. I also provided a sample SConstruct that compiles 
most of the Qt4 examples [3] without qmake.

Some other bugs are still wandering arround such as the moc scanner bug which 
fails to locate mocable cpp files. I promise to address it. The workarround 
is to call explicitly the Moc4 builder or to move the Q_OBJECT to a h file 
included by an homonimous cpp file.

While doing the update I detected some possible bugs on the pkgconfig. 

On one side the QtDbus pc file adds -I$QTDIR/include/qt4 but 
not -I$QTDIR/include/qt4/QtDBus as other modules do. 

On the other i feel QtAssistant/QtAssistantClient module pretty inconsistent 
on the naming. Most things uses 'QtAssistantClient' but the includes which 
are just in -I$QTDIR/include/qt4/QtAssistant (debian and windows install 
agree with that). In any case the pkg-config module in debian, points the 
headers to -I$QTDIR/include/qt4/QtAssistantClient instead 
of -I$QTDIR/include/qt4/QtAssistant

[0] http://www.iua.upf.edu/~dgarcia/Codders/sconstools.html
[1] http://clam.iua.upf.edu
[2] http://iua-share.upf.edu/svn/clam/trunk/CLAM/scons/sconstools/qt4.py
[3] 
http://iua-share.upf.edu/svn/clam/trunk/CLAM/scons/sconstools/SConstruct.qt4examples


-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 2 in thread

David García Garzón wrote:
>Some other bugs are still wandering arround such as the moc scanner bug
> which fails to locate mocable cpp files. I promise to address it. The
> workarround is to call explicitly the Moc4 builder or to move the
> Q_OBJECT to a h file included by an homonimous cpp file.

Suggestion: take the kde4automoc.cpp program that is part of the KDELibs 
CMake packages. It's a Qt C++ source that scans the headers and source 
files for mocable stuff. Then it calls moc on each file and generates one 
single .cpp file that can be used to compile all moc'ed sources.

>While doing the update I detected some possible bugs on the pkgconfig.
>
>On one side the QtDbus pc file adds -I$QTDIR/include/qt4 but
>not -I$QTDIR/include/qt4/QtDBus as other modules do.

Hopefully fixed in Qt 4.4 already. I can't see the issue in the TP1 
packages.

>On the other i feel QtAssistant/QtAssistantClient module pretty
> inconsistent on the naming. Most things uses 'QtAssistantClient' but
> the includes which are just in -I$QTDIR/include/qt4/QtAssistant (debian
> and windows install agree with that). In any case the pkg-config module
> in debian, points the headers to -I$QTDIR/include/qt4/QtAssistantClient
> instead
>of -I$QTDIR/include/qt4/QtAssistant

Indeed. Still present as a bug. Can you file it with 
qt-bugs@xxxxxxxxxxxxx?

-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.


Message 3 in thread

Hi, Thiago, nice to 'talk' to you again. :-)

On Tuesday 18 December 2007 15:13:06 Thiago Macieira wrote:
> David GarcÃa GarzÃn wrote:
> >Some other bugs are still wandering arround such as the moc scanner bug
> > which fails to locate mocable cpp files. I promise to address it. The
> > workarround is to call explicitly the Moc4 builder or to move the
> > Q_OBJECT to a h file included by an homonimous cpp file.
>
> Suggestion: take the kde4automoc.cpp program that is part of the KDELibs
> CMake packages. It's a Qt C++ source that scans the headers and source
> files for mocable stuff. Then it calls moc on each file and generates one
> single .cpp file that can be used to compile all moc'ed sources.

I would like not having binaries dependencies but the ones in qt binaries and 
SCons itself. But anyway I'll definitelly take a look at the code to get 
ideas. The automoc feature was already implemented for the qt3 scons tool but 
i broke it during the qt4 port. I know what i should do but i should do it 
with scanners which is a SCons feature i don't have so many insight. Anyway 
it should be feasible. Just another sleepness night.

The solution of joining the moc files looks nice but it cannot be used to 
compile a lot of existing qt code (the qt4 examples) which includes specific 
moc generated files. Those examples are just the ones i have problems with. I 
just hacked my code so that the current scons scanner works but i cannot 
compile unmodified qt examples code which is one of my current goals.

> >While doing the update I detected some possible bugs on the pkgconfig.
> >
> >On one side the QtDbus pc file adds -I$QTDIR/include/qt4 but
> >not -I$QTDIR/include/qt4/QtDBus as other modules do.
>
> Hopefully fixed in Qt 4.4 already. I can't see the issue in the TP1
> packages.

Cool. Looking forward such an amazing release (not just because this bug is 
fixed ;-) ).

> >On the other i feel QtAssistant/QtAssistantClient module pretty
> > inconsistent on the naming. Most things uses 'QtAssistantClient' but
> > the includes which are just in -I$QTDIR/include/qt4/QtAssistant (debian
> > and windows install agree with that). In any case the pkg-config module
> > in debian, points the headers to -I$QTDIR/include/qt4/QtAssistantClient
> > instead
> >of -I$QTDIR/include/qt4/QtAssistant
>
> Indeed. Still present as a bug. Can you file it with
> qt-bugs@xxxxxxxxxxxxx?

At your command. Filled and sent :-)

David.




--
 [ signature omitted ] 

Message 4 in thread

On Dimarts 18 Desembre 2007, David GarcÃa GarzÃn wrote:
> On Tuesday 18 December 2007 15:13:06 Thiago Macieira wrote:
> > David GarcÃa GarzÃn wrote:
> > >Some other bugs are still wandering arround such as the moc scanner bug
> > > which fails to locate mocable cpp files. I promise to address it. The
> > > workarround is to call explicitly the Moc4 builder or to move the
> > > Q_OBJECT to a h file included by an homonimous cpp file.
> >
> > Suggestion: take the kde4automoc.cpp program that is part of the KDELibs
> > CMake packages. It's a Qt C++ source that scans the headers and source
> > files for mocable stuff. Then it calls moc on each file and generates one
> > single .cpp file that can be used to compile all moc'ed sources.
>
> I would like not having binaries dependencies but the ones in qt binaries
> and SCons itself. But anyway I'll definitelly take a look at the code to
> get ideas. The automoc feature was already implemented for the qt3 scons
> tool but i broke it during the qt4 port. I know what i should do but i
> should do it with scanners which is a SCons feature i don't have so many
> insight. Anyway it should be feasible. Just another sleepness night.
>
> The solution of joining the moc files looks nice but it cannot be used to
> compile a lot of existing qt code (the qt4 examples) which includes
> specific moc generated files. Those examples are just the ones i have
> problems with. I just hacked my code so that the current scons scanner
> works but i cannot compile unmodified qt examples code which is one of my
> current goals.

I just found the scanner bug. It was just that I obtained the moc output 
filename filename not just changing the prefix (file.cpp -> file.moc) but 
also adding a prefix (file.cpp -> moc_file.moc). As qt examples were doing 
#include "file.moc" scons was unable to relate such includes and the 
execution of moc over the cpp file.

Now it works, in fact i just got all examples compiling with scons. I am 
pretty happy. :-) The other bug was a about on recursively including a 
directory in a qrc file.

Let's try now crosscompiling the examples with mingw.




-- 
 [ signature omitted ] 

Attachment: signature.asc
Description: This is a digitally signed message part.