discuss-gnustep
[Top][All Lists]
Advanced

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

Re: [RFC] Header organization of -base & -gui


From: David Ayers
Subject: Re: [RFC] Header organization of -base & -gui
Date: Tue, 08 Jul 2003 13:52:38 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4b) Gecko/20030507

Markus Hitter wrote:

Am Montag, 07.07.03 um 14:19 Uhr schrieb David Ayers:

So here are two variants based on everyones feedback. The first keeps the currently correct installed headers in the same place, the second would ease OS X / ProjectBuilder users to extract the subprojects into custom frameworks.

--enable-multi-openstep
- default on OpenStep systems (NeXT/OPENSTEP/OS X)

Variant 1:
Headers/gnustep/Foundation/NS*.h
Headers/gnustep/base/GS*.h
Headers/gnustep/AppKit/NS*.h
Headers/gnustep/gui/GS*.h
& -Ixxx/gnustep (only for *-gnu-gnu)

Well, obviously the gnustep/ directory is obsolete here since it's the same for all headers. You could remove it as well and get something very similar to:

I guess I wasn't clear enough here. The gnustep/ directory is not obolete because when building -baseadd (and projects using -baseadd) with apple-apple-apple -make would *not* use -Ixxx/gnustep to insure that Apple's Foundation headers are used instead of ours. Yet when building -base (and projects using -base) with gnu-gnu-gnu on OS X it *would* use -Ixxx/gnsutep.

--disable-multi-openstep
- default on all non-OpenStep systems.

Variant 2:
Headers/Foundation/NS*.h
Headers/GNUstepBase/GS*.h
Headers/AppKit/NS*.h
Headers/GNUstepGUI/GS*.h

So, I'm wondering why you want --xxx-multi-openstep. Perhaps you should rename it to --use-old-header-directories?

They're not old, they are simplified to save the unnecessary -I if we don't have different Foundation installations to worry about.

Adam Fedor wrote on July 2:

The problem with this is, again on  apple-apple-apple, where if you
have the header structure:

Headers/Foundation
Headers/GNUstepBase

and you have the includes "-I../Headers", then the compiler finds our
foundation headers before the Apple Foundation headers.


Thought, a "-framework Foundation -I../Headers" should help here.

When testing this (on current ProjectBuilder, without installing GNUstep) I found only in case of #include "Foundation/NSObject.h" the GNUstep Header whould be found. When using #include <>, Apple's Foundation header (or none) is preferred.

Well, eventhough using #include <Foundation/NSFile.h> should generally be used in all projects save -base, I would not want to rely on this undefined behavior. The level of indirection with the gnustep/ directory is intended exactly for this ambiguity.

Seems, there are 1001 cases to consider. What if you whould set up a example header structure(s) with #warnings inside the files and reach it around so everybody can test and feedback the output it before it goes into CVS?

Well, I'll volunteer to do the transition for all projects in the gnustep repository on Savannah, with the OK of the respective maintainers. Whether or not it makes sense to tar-up a header structure for the dummy headers or not, we can discuss once I've got it working locally, and only if people come up and volunteer to test it with the different configurations.

Cheers,
David








reply via email to

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