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 _______________________________________________ Gnustep-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnustep-dev
