[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Portability/Compatability between GNUstep <---> Cocoa...

From: Richard Frith-Macdonald
Subject: Re: Portability/Compatability between GNUstep <---> Cocoa...
Date: Mon, 12 Jan 2004 14:27:30 +0000

On 12 Jan 2004, at 13:50, Kazunobu Kuriyama wrote:

Richard Frith-Macdonald wrote:

For both base and gui, MacOS-X extensions are intermingled with the rest of the code, and there are compiler preprocesssor values used to control #ifdef statements in the headers so that application programmers can decide whether their software builds with MacOS-X and GNUstep extensions available or not (the default is for all extensions to be available to the application code).

I'd like to know this point more. As far as I know, there are two compilation switches STRICT_OPENSTEP and NO_GNUSTEP for the purpose stated above. The implications of '#define STRICT_OPENSTEP' and '#define NO_GNUSTEP' are trivial, but that of '#if !defined STRICT_OPENSTEP' or '#if !defined NO_GNUSTEP' looks
fairly ambiguous.

There is also STRICT_MACOSX

(Also, I'm skeptical about allowing application programmers to use of marcos designed for internal use
of library development.  But this is another issue. )

These have nothing to do with internal use for library development, they are solely there for applications programmers
(and used to aide generation of documentation for programmers).

All the application programmer does is define one of these values ...
So if they define STRICT_OPENSTEP, their compiler will not 'see' any non OpenStep classes, methods etc in the headers. If they define STRICT_MACOSX their compiler will not see any non MACOS_X stuff. If they define NO_GNUSTEP their compiler will not see GNUstep specific extensions.

Recently, I've made some non-trivial programs based on some Cocoa programming books and found some concrete incompatiblilities between GNUstep and Cocoa. When I come across such an incompatibility, I'm always at a loss because GNUstep doesn't provide any preprocessor macro which can be used just for differentiating GNUstep code and Cocoa one. I feel both STRICT_OPENSTEP and NO_GNUSTEP or their
negations are not appropriate for that purpose.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]