[GRASS-dev] Re: [GRASS GIS] #308: Compiler error while building
python swig
GRASS GIS
trac at osgeo.org
Thu Sep 11 21:53:23 EDT 2008
#308: Compiler error while building python swig
----------------------------------+-----------------------------------------
Reporter: cgsbob | Owner: grass-dev at lists.osgeo.org
Type: defect | Status: new
Priority: major | Milestone: 6.4.0
Component: SWIG (all bindings) | Version: svn-develbranch6
Resolution: | Keywords: python swig
Platform: Unspecified | Cpu: Unspecified
----------------------------------+-----------------------------------------
Comment (by glynn):
Replying to [comment:7 hamish]:
> It happens that filtering out /^#/ also filters out any '#include
<foo.h>' etc.
> include/vect/dig_structs.h is the most diverse example of that, with
#defined constants, structs, and #ifdef HAVE_OGR etc.
>
> also include/Vect.h #includes the dig_*.h files in include/vect/,
> should those be followed? stdio.h? grass/gis.h?
The existing Makefile doesn't filter out preprocessor directives from
Vect.h, only from gisdefs.h.
Replying to [comment:8 hamish]:
> fyi, "SWIG-1.3.12 and newer releases support variadic preprocessor
macros."
We don't use variadic preprocessor macros, as they aren't allowed by ANSI
C. The issue is whether the interface file should include variadic
function declarations.
It appears that the problem is with the __attribute__ declarations. If I
insert
{{{
#define __attribute__(x)
}}}
at the top of gisdefs.i, gisdefs.h can be inserted in its entirety and
nothing needs to be filtered out.
But then there's the more fundamental problem that the other
interfaces/*.i files are duplicating information from the headers, and are
somewhat out of date. And it's safe to say that anything which attempts to
duplicate information from the headers will be continually out of date.
The SWIG stuff is going to have to use the actual headers directly.
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/308#comment:9>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list