[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Minimalist GNUstep possible?
From: |
David Chisnall |
Subject: |
Re: Minimalist GNUstep possible? |
Date: |
Fri, 18 Jun 2010 12:33:07 +0100 |
On 18 Jun 2010, at 10:16, Jonathan Wolf wrote:
> I went back and did some more toying around and got exactly what I was
> needing to get (at least on a nix box). I have yet to go try this on a
> MinGW/Windows system, but I have high hopes that it should work pretty
> much the same (hopefully!).
>
> We do want to target all three primary OS'es (major nix flavors, mac,
> and windows), so having a toolset be cross platform like this is a
> major boost (plus ObjC is awesome). Has anybody seen any luck with
> using GNUstep as a .dll over on this sort of setup?
I've not used Windows for some years, but I recall reading on the wiki that
there was a tool for producing a stand-alone Windows installer that packages
the GNUstep dlls and everything else that you need. Gregory is probably the
best person to answer this - he's been doing a lot of work on Windows recently.
> One thing in particular that we're going to deal with, almost
> assuredly, is that the user may not have a few of the libs installed
> (ldd listed a decent number of linked libraries, including some rogue
> ones like libffi (fast function interface if I remember from the
> GNUstep documentation)).
Foreign, not fast. You said in your original email that you needed
NSInvocation, so this is not a rogue dependency, this is one that you actually
need (Well, actually you said NSMethodInvocation, but such a class does not
exist). FFI is used by GNUstep to implement the callback that the runtime uses
for message forwarding. It is needed to construct NSInvocation instances, so
if you use -forwardInvocation: anywhere, then you need to use it.
You can remove things like libxml2 as dependencies with some configure flags
(./configure --help to list all of them).
> Is there any way, aside from scripting it out
> in an installation script, to use a redistributable package (perhaps
> similar to the .NET redistributables), or do people really need a full
> installation of GNUstep for it to work? I'm not the best on dynamic
> linkage, but is having a copy of the .so/.dll in the same folder as
> the executable "good enough" (hopefully not breaking LGPL rules)?
Yup, that should be fine for Windows. If you're using AppKit then you probably
also want to bundle the UXTHEME bundle so that the app looks and behaves more
like a native app (native Windows menus and buttons, native colour scheme, and
so on). If you're not, then you can probably get away with just the
gnustep-base.dll and its dependencies (libobjc.dll, not sure what else).
> As a side question that I am sure to be interested in moving into the
> future, is GNUstep planning on supporting mobile architectures, say
> like Android? I would really love to keep using a compiled language
> (like ObjC) on such a platform and be able to take our tools with us
> onto that end, if we ever go there. Has anybody heard of any luck with
> any developers going this route? I did notice that there was some work
> being done on incorporating ObjC into Android, but I'm sure somewhere
> along that path GNUstep is going to be one of the major players.
I'm not sure about Android specifically, because it uses its
lets-reinvent-the-wheel-and-make-it-square windowing system and doesn't seem to
like people not living inside their slow VM. Mobiles like the N900 are
definitely of interest to us. Supporting Android will probably be easier once
Cairo has been ported, otherwise we'd have to port the back end to use Skia
natively, which is a lot of effort. For a minimal port, we should be able to
use Cairo's OpenGL or image back ends and just write the event handling code
(which is nontrivial, but not a huge amount of work).
You might like to look at MySTEP, which is a friendly fork of GNUstep that aims
to target mobile devices. Where design decisions require optimising for either
desktop or mobile use, GNUstep went one way and MySTEP went the other way. I'm
not sure how relevant it is now - modern handhelds are more powerful (in terms
of RAM, CPU, and GPU power) than desktops were when MySTEP was forked, but it's
still pretty lightweight.
Over the summer, we have a GSoC student finishing up our CoreGraphics
implementation, providing the core that we'd need for implementing more of the
iPhone APIs. We'd like to start working on a UIKit implementation later in the
year, so if your company would be interested in partially funding, or
contributing some code to, that effort then let us know. A lot of the existing
code in GNUstep's AppKit implementation can be used in UIKit, but some things
will need extending or rewriting.
David
- Minimalist GNUstep possible?, Jonathan Wolf, 2010/06/17
- Re: Minimalist GNUstep possible?, David Chisnall, 2010/06/17
- Re: Minimalist GNUstep possible?, Jonathan Wolf, 2010/06/17
- Re: Minimalist GNUstep possible?, Richard Frith-Macdonald, 2010/06/18
- Re: Minimalist GNUstep possible?, Nicola Pero, 2010/06/18
- Re: Minimalist GNUstep possible?, Jonathan Wolf, 2010/06/18
- Re: Minimalist GNUstep possible?,
David Chisnall <=
- Re: Minimalist GNUstep possible?, Jonathan Wolf, 2010/06/18
- Re: Minimalist GNUstep possible?, Philippe Laporte, 2010/06/23
- Re: Minimalist GNUstep possible?, David Chisnall, 2010/06/23
- Re: Minimalist GNUstep possible?, Nicola Pero, 2010/06/23
- Re: Minimalist GNUstep possible?, Nicolas Roard, 2010/06/23
- Re: Minimalist GNUstep possible?, Riccardo Mottola, 2010/06/18
- Re: Minimalist GNUstep possible?, Jonathan Wolf, 2010/06/19
- Re: Minimalist GNUstep possible?, David Chisnall, 2010/06/19
- Re: Minimalist GNUstep possible?, Richard Frith-Macdonald, 2010/06/19