[Lazarus] Using event driven components in console application
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Wed Nov 4 12:30:28 CET 2015
JuuS wrote:
> On 11/04/2015 09:48 AM, Mark Morgan Lloyd wrote:
>> When building the IDE you'd normally use make bigide or similar which
>> would use the platform defaults, but depending on what libraries etc.
>> were available you could also use e.g. make LCL_PLATFORM=qt bigide
>>
> Hi,
>
> This question / discussion is also very interesting to me (warning
> possible dumb questions ahead).
>
> I am still very vague on the widget type/set in my gnu/linux education.
> I'm kub14.04, the ide then uses gtk2, all automatic.
If that's Kububtu, I'd expect it to be using KDE which implies you've
already got Qt. Assuming that you have- or can add- libqt4pas-dev then
you can build the Lazarus IDE etc. for Qt.
> But my questions are:
>
> Why would I want to use qt, gtk3, etc? Yes, of course for different
> platforms but which platforms (Fedora? Debian? ?? ).
Depends massively on the version of whichever distro you've selected,
since these will typically bundle different versions of Gnome and it's
this that drives GTK forwards. I'm sure you've seen Torvalds' rants on
the issue.
It also depends on the version of Lazarus you're using since of
necessity this tracks GTK and Qt, and to a much lesser extent on the
version of FPC for the same reason.
In general, Debian "Lenny" is OK for GTK and GTK2. Debian "Squeeze" and
"Wheezy" are OK for GTK2 and Qt. My experience with Lazarus "Jessie" is
that Qt is somewhat more reliable than GTK, although I'm sure I'll take
flak for saying so.
Can't remember where I've got to with "Stretch". Recent versions of
Lazarus have started making demands of Qt that are no longer satisfied
by the one with "Squeeze".
> Does this mean then that what I have developed in gtk2 will ==NOT== run
> properly in some gnu-L flavours? Which ones? How do I tell?
Yes. Pass. Badly.
> I guess setting up VMs for my targets is a good solution to find out if
> there is a problem but I can't always tell which widgetset is right for
> which flavour...?
>
> I have googled this before but have found nothing that has enlightened me.
The first problem to solve is pairing up which version of FPC works best
with a given version of Lazarus. After experimentation, I've got
/usr/local/bin/lazarus-0.9.24+2.2.4
/usr/local/bin/lazarus-0.9.26+2.2.4
/usr/local/bin/lazarus-0.9.28+2.4.0
/usr/local/bin/lazarus-0.9.30+2.4.4
/usr/local/bin/lazarus-1.0.0+2.4.4
/usr/local/bin/lazarus-1.0.0+2.6.0
/usr/local/bin/lazarus-1.0.8+2.6.2
/usr/local/bin/lazarus-1.0.14+2.6.4
/usr/local/bin/lazarus-1.2.6+2.6.4
/usr/local/bin/lazarus-1.4.2+3.0.0
/usr/local/bin/lazarus-gtk1-compatible
The last of those is actually 0.9.24.1 with FPC 2.2.4, which is about as
old as is viable. I can't say without significant digging in my build
scripts which of those are also good for Qt. I really can't say which
are good for different versions of Windows (except that if you really do
have to build for NT you'll need something like 0.9.26.2 + 2.2.4) or for
OS X. Anybody into SPARC Solaris should find 1.4.2 + 3.0.0 OK.
The best thing to do, in my opinion, is to build as many variants of
your binary as possible for a given platform, and then find out what
doesn't work. To try to keep that doable I've got a script set up which
points each of the combinations listed above at its own configuration
file, so that I don't find myself chasing shadows because the underlying
FPC version is suddenly wrong.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the Lazarus
mailing list