[Scons-users] Scons using config.h.in
Zachary Lund
admin at computerquip.com
Wed Apr 3 04:44:28 EDT 2013
On Tue, 2013-04-02 at 13:53 +0200, dev at mgautier.fr wrote:
> > Herm... good question :D
> >
> > I suppose ultimately, I'm having issues adding things like
> "#include"
> > statements (or anything that isn't directly support in Scons) in my
> > config header (i.e. outside of macros is the use of "typedef". If a
> > certain type doesn't exist, create an alternative). I suppose I
> could do
> > this using substfile like stated above... it just seems kinda round
> > about and sloppy.
> >
> > It's static content so I feel like substfile is overkill and/or
> overly
> > complicated for the task.
> >
>
>
> Hello,
>
> Does this (http://www.scons.org/wiki/GenerateConfig ) answer your
> problem ?
>
> We use it in our build system and it works pretty well.
>
> It should be possible for you to create a builder to automatically
> create config.h from config.h.in instead of explicitly call
> env.Command.
>
> Matthieu.
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
Eh, I'm going through way to much trouble for this.
I am going to use the GenerateConfig method but I'd have to do:
#if %(HAVE_ALLOCA_H)i
#define HAVE_ALLOCA_H %(HAVE_ALLOCA_H)i
#endif
about 130 times, literally. This turns my 380 line header to 1200 lines.
I setup a regex to do this for me and it works out well, it's just
incredibly sloppy. The reason I have to do this is because the macro
cannot be defined if we don't support a feature. Setting it to 0 doesn't
work in this case because #ifdef's are used all over the place.
I'd like to eventually have it #undef anything that isn't supported but
it seems like a real pain in the ass. I really don't get why this isn't
support in Configure(). It already does this to some extent with
Define().
CMake also has something similar to this with #cmakedefine where the
above example would look like this in the template header:
#cmakedefine HAVE_ALLOCA_H @HAVE_ALLOCA_H@
An alternative to this that's supported direclty by Scons would be nice
for the sake of convenience and a universal method.
More information about the Scons-users
mailing list