gnustep-dev
[Top][All Lists]
Advanced

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

Re: [RFC] Header organization


From: David Ayers
Subject: Re: [RFC] Header organization
Date: Thu, 26 Jun 2003 11:45:28 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030507

Hello again,

I've been tossing this issue back and forth... The 'next best' suggestion I've come up with so far, is to name the source directories of the official "OpenStep/Cocoa" compiliant header files "openstep" and keep creating symbolic links for Foundation/AppKit when applicable. i.e.

base/Headers/openstep/NS*.h
base/Headers/gnustep/base/GS*.h
gui/Headers/openstep/NS*.h
gui/Headers/gnustep/gui/GS*.h

As too Alexander's suggestion, I would propose:
gui/Headers/gnustep/gui/private

Personally I generally don't like the notion of headers private to the "core package". It's a matter of good design to be able to expose a well defined API for a project, that other packages rely on. But in the case of -gui/-back I absolutly can accept, that the integration must be tighter. Conceptually I see -back as "subproject" of -gui which technically just happens to be its own project. Therefore I think it is justified for -gui to have a private subdirectory in its header structure. I'm not convinced that we should use this anywhere else and for any other reason, but I open to reasoning.

If this sound good, I'll post a list of files for each directory for reviewal, so that I can start reorganizing the files. This is also a good time to request any name changes for the files which will be moved.

I'm also considering creating the dummy headers in the old locations with the warning and inclusion of the header from the new location as Alexander suggested "on the fly" during make install, even though I haven't figured out exactly how we want to do this (sed?/awk?). The reason being, that the headers which are going to be "relocated" during installation (GS*.h) are not the headers which will be relocated in the source tree (NS*.h). Therefore we can't use the technique of leaving the old header files in CVS and simply update them with the warning and redirection while reimporting the real headers at different location.

Cheers,
David

Adam Fedor wrote:

David Ayers wrote:

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.

The only problem with a real Foundation/AppKit directory is on MacOSX, when compiling the BaseAdditions library, the compiler will find this directory in preference to the installed Foundation framework. I have to think of a solution for that (even if it's specific to apple-apple-apple libcombo).

Other than that I like the idea.







reply via email to

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