[gst-devel] location of include headers
Thomas Vander Stichele
thomas at urgent.rug.ac.be
Sun Jun 16 00:25:02 CEST 2002
Hello people,
I have looked at some other projects as to where they install their
headers and come to the conclusion that we might think about changing
ours.
The problem is fairly simple : some of our headers *need* to point to
other headers in the same package using < > which sets the compiler off
looking for headers in the standard locations and the user-supplied
locations. They *need* to do this because these headers get installed
system-wide and could thus be used by external apps as well.
The way I see it is that, you should use "..." if the header is in the
source tree only and not meant to be installed, and <...> if the header
you're doing this in is meant to be installed, as well as the header
you're pulling in.
Now, this causes problems. Take the editor for example. The
editor.h file in gst/editor is the entry point. It contains includes
like this :
#include <gst/editor/gsteditorbin.h>
So that, when an external app wants to work with the installed gst-editor,
this will correctly point to this other installed header.
Now, there's a problem with this, and that's why I suspect the other
projects (gtk, eel, pango, freetype, ...) use another level in their
include installation.
The problem is this : when you already have a previously installed set of
header files, and you include them as <gst/editor/gsteditorbin.h>, the
installed set will take preference to be included, since they are in the
standard include prefix.
The other projects basically solve this by sticking in another level, so
that the dir from which everything starts needs to be EXPLICITLY added to
the compile lines.
So what does this mean for us ?
We could go two ways :
a) drop the gst/ prefix from all the #include lines and add
-I/$(prefix)/include/gst to all the compile lines that need it
b) put all gst header files in something like
$(prefix)/include/gstreamer and start the tree from there
(so that editor.h would end up in
$(prefix)/include/gstreamer/gst/editor/editor.h)
I prefer b) since 1) we need to change less source code and 2) other
projects do it similarly.
I'm sure all of you have at some point been stung by things failing to
compile where the ultimate reason was that some old header stuff was
floating around. This should not be allowed to happen.
So, what do you think ? Agree ? Not ? If y'all agree I'll work on doing
this quickly. I'd prefer to get this done before 0.4.0.
Thanks,
Thomas
--
The Dave/Dina Project : future TV today ! - http://davedina.apestaart.org/
<-*- -*->
Ooh child I'll meet you child
On the sunny side it's alright
<-*- thomas at apestaart.org -*->
URGent, the best radio on the Internet - 24/7 ! - http://urgent.rug.ac.be/
More information about the gstreamer-devel
mailing list