gnustep-dev
[Top][All Lists]
Advanced

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

includes/imports in gui.


From: Richard Frith-Macdonald
Subject: includes/imports in gui.
Date: Tue, 16 Feb 2010 14:53:24 +0000

I'd like to standardise include/imports in the core libraries ... as I've been 
doing a lot of it in base.

Previously in base, there was really a bit of a mess ...

Lots of #includes from they days when #import was deprecated ... harmless but 
annoying

A mixture of <foo.h> and "foo.h" used ... not harmless ... anything using the 
angle brackets could pick up installed headers rather than the local/new 
versions, which could cause problems for anyone building from a new release or 
from svn.
 
Foundation/Foundation.h used in some places, individual files used in others... 
because Foundation.h imports all the other headers, using it while building 
base would also cause installed headers to be used when you actually want local 
ones.

Two or more files (at least GNUstep.h and GSCategories.h) needed to be 
included/imported by OSX apps wanting to use base additions, and some of those 
headers caused problems it used from within gnustep code.

Hopefully, I've now pretty much standardised on #include for C and #import for 
ObjC.

All source in base should now use quotes rather than angle brackets, and avoid 
Foundation.h so that new builds should work properly on systems where base is 
already installed.

There should be a single header 'GNUstepBase/Additions.h' for software on OSX 
using the Apple Foundation, and this file should be safe to include on GNUstep 
systems (indded, Foundation.h on GNUstep should import it unless NO_GNUSTEP is 
defined).  Actually, I need to re-port the additions library to OSX ... it's 
currently broken there.


Anyway, given that gnustep-make and recent compilers have supported precompiled 
headers for some time now, I think gui/back should probably simplified to just 
do
#import <Foundation/Foundation.h>
(assuming that 'startup' installs base before it builds gui ... so the 
installed Foundation.h will point to all the right code and will have a 
precompiled version to make for fast compilation of gui and back).

Does that seem reasonable?



reply via email to

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