gnustep-dev
[Top][All Lists]
Advanced

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

Re: [RFC] Header organization


From: Nicola Pero
Subject: Re: [RFC] Header organization
Date: Fri, 20 Jun 2003 16:53:20 +0100 (BST)

Hi David,

I'm completely swamped at the moment, so I can't follow all the discussion
and comment on the details.

But I wanted to say that as a general feeling I'm all for simplifying
things, and I think moving headers around (if there is a good reason for
doing it, and simplifying is a good reason) is Ok. :-)


> Hello Everyone,
> 
> As some of you know, I've been plowing through the files changing the 
> include syntax of local headers.  I was going through -back tweaking 
> minor related issues )as it seems, most local/non-local headers are 
> included corrctly (""/<>).  There are only minor descrepencies.) While 
> doing this, I noticed that we currently have a rather awkward situation 
> in the way we handle GS specific headers.
> 
> In the source tree for -base (-gui), headers are contained in the 
> Headers/gnustep/base (Headers/gnustep/gui) directores respectively.  The 
> -make system creates a symbolic link Headers/Foundation (Headers/AppKit) 
> so that the headers can be located either through gnustep/base/ or 
> Foundation (gnustep/gui or AppKit) while *building* base (gui) or it's 
> subprojects.
> 
> Yet when the headers are installed, they are installed into real 
> seperate directories, which seemed rather strange, but I had previously 
> never given it much thought.  I would have suspected that all GS 
> specific files would be installed in gnustep/base (gnustep/gui) and all 
> OS* compatible files to be installed in Foundation (AppKit).  Well the 
> later part is true, but the former isn't.
> 
> This leads to the situation, that it's fine for GSMime.m to include 
> gnustep/base/GSMime.h but any external project must include 
> Foundation/GSMime.h (well at least on non OS X machines, I'm not sure 
> where/if it gets installed on OS X.)
> 
> For -base this could quickly be resolved by moving GSMime.h and GSXML.h 
> from FOUNDATION_HEADERS to ADD_HEADERS in base/Source/GNUmakefile.
> 
> For gui things are a bit messier.  All "library" headers are installed 
> into AppKit.  Additinally while installing the Model project, certain 
> "library" headers are also copied to gnustep/gui, making these few 
> redundant.
> 
> Now, I would volunteer** to help sort this out, if we can find a 
> consensus on how it should be and how we can get there.
> 
> My preferred solution would be to have real gnustep/base and Foundation 
> (gnustep/gui and AppKit) directories in the source tree as well as in 
> the installed Headers directory.  The gnustep/base (gnustep/gui) 
> directory whould contain all GS specific headers and the Foundation 
> (AppKit) diectory would contain the OS* specific headers.
> 
> Of course the includes would have to be adapted accordingly.  But this 
> would also break user code which currently includes <AppKit/GS*.h> files.
> 
> Do we accept this API instability?
> Do we accept the loss of CVS history by moving the NS*.h files into a 
> new directory?
> 
> The only thing we really gain is consistency, transparency and possibly 
> simpler makefiles.  It doesn't fix any real bugs (I know of).  I 
> personally still think we should.
> 
> Comments, suggestions...
> 
> Cheers,
> David
> 
> *  OPENSTEP- / OS X- compatible
> ** These local cvs variants and TODO lists just keep growing... :-/
> 
> 
> 
> 
> _______________________________________________
> Gnustep-dev mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gnustep-dev
> 





reply via email to

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