help-gnustep
[Top][All Lists]
Advanced

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

Re: Private headers in GSMake frameworks?


From: Uli Kusterer
Subject: Re: Private headers in GSMake frameworks?
Date: Sat, 30 Oct 2004 18:14:58 +0200
User-agent: MT-NewsWatcher/3.4 (PPC Mac OS X)

In article <mailman.6164.1099148524.2017.help-gnustep@gnu.org>,
 Nicola Pero <n.pero@mi.flashnet.it> wrote:

> > I've found FrameworkName_HEADER_FILES for specifying "Headers", but is
> > there an equivalent to "PrivateHeaders" in GNUstep-make? What's the
> > variable called?
> 
> xxx_HEADER_FILES is for specifying headers which are to be installed and 
> made public.
> 
> If you have "local" headers which are "private" and are only used when 
> compiling the framework and/or applications/tools internal to the 
> framework, then you just don't list them in xxx_HEADER_FILES and they are 
> not installed, hence not made public.

 Yes, I'm familiar with that distinction. However, Apple's 
"PrivateHeaders" is sort of the "protected" (in C++ terms) of the header 
folders. They're intended to be included in the framework, but aren't 
supposed to be used by most clients. For an open-source project like 
GNUstep, this is a very handy distinction.

 Take an application like Preferences.app: It has the 
PrefsModule.framework, which contains its PrefsModule protocol. However, 
it may also contain additional classes that are used by Preferences.app, 
which aren't intended for use by people writing PrefsModules, but rather 
are only useful for people writing their own Preferences.app (which is a 
very arcane thing to do).

 By placing those headers in "PrivateHeaders" (which is treated by the 
build system just like "Headers"), PrefsModule writers aren't even 
tempted to rely on these headers. However, if a new version of the 
PrefsModule framework comes out, all that's necessary to pick up its 
changes is to recompile Preferences.app against that framework, even if 
the framework is a binary-only distribution.

 PrivateHeaders is the place where headers would go that aren't 
guaranteed to stay available in the next revision.

 But I guess the answer for now is that there are no PrivateHeaders in 
GNUstep, and that I'll have to put these files in "Headers" and mark 
them as "not for use" some other way.

Cheers,
-- Uli Kusterer
http://www.zathras.de


reply via email to

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