QT 3.0

Ralf Habacker kde-cygwin@mail.kde.org
Fri, 19 Apr 2002 13:47:09 +0200


> > > > > > > Basically with QT 3 there has been a move from the previous
> > > > > configuration
> > > > > > > scripts to qmake. This causes some problems with Cygwin because
> > > Cygwin
> > > > > > > requires a special set of steps to be taken in order to produce
> > > shared
> > > > > > > libraries and these aren't supported by qmake. The DLL links
> using
> > > the
> > > > > qmake
> > > > > > > generated Makefile, but is useless since it doesn't have a .DLL
> > > suffix.
> > > > > I
> > > > > > > have produced my own script which creates a qt-mt-3-0.dll but
> this
> > > is
> > > > > only a
> > > > > > > temporary fix. So what I'm asking is if anyone has any ideas on
> how
> > > to
> > > > > solve
> > > > > > > this problem.
> > > > > > Yes, I have a patched qt3-cygwin release with native qdir/qfile
> > > support.
> > > > > > You can get qt-3 in the next few days from cvs.
> > > > > How did you link the DLL?
> > > > With ld, of course. Im not sure, what you like to hear with this
> question.
> > > > I have created a mkspec/cygwin-g++/dir and have patched qmake. See the
> > > > appended patch of the head release of anoncvs.kde.orgs qt-copy dir
> > > One small comment about the patch. IMHO, the Cygwin DLL support should
> be
> > > turned on by an option in the mkspecs (like the hpux shlib support
> stuff),
> > > rather than #ifdef __CYGWIN__. On the other hand, both methods work to
> the
> > > same effect I guess.
> > >
> > You mean to write a specific qmake makefile generator ? Yes, may be, but
> it
> > needs more time to understand the source as I had. If you like to do this,
> do
> > it.
> Not quite a specific one. If you look at the hpux qmake.conf's they have a
> line "QMAKE_HPUX_SHLIB = 1" which turns on some conditional processing in
> unixmake.cpp/unixmake2.cpp. We could add a QMAKE_CYGWIN_SHLIB flag in a
> similar way. The #ifdef __CYGWIN__ would be replaced with something like:
> if (!project->variables ()["QMAKE_CYGWIN_SHLIB"].isEmpty ())

Sounds good, but I haven't currently no time for this (it works for me), so  
if you like to take the job, do it, check it and release a beta release. 

Ralf