[C++-sig] [py++] Problem: empty xml file created

Marcus Lindblom macke at yar.nu
Tue Dec 2 14:15:38 CET 2008

Roman Yakovenko wrote:
> 2008/12/2 Marcus Lindblom <macke at yar.nu>:
>> Hi all,
>> I'm trying to get OpenSG's python-bindings to work on Windows (and
>> contruibuting that back to the project), and trying to track down an
>> exception that get's thrown when running it's gen_bindings.py. (see attached
>> log.txt for output)


>> The PyOpenSG-devs have only used linux, and have maybe seen this before,
>> earlier, but can't recall what and when. They also have used a earlier
>> py++-version, but I'm using 1.0. I might be shooting myself in the foot with
>> that, but I hope not.
> There were few changes here and there, but it should not be too
> dificcult to upgrade,

That's what I'm hoping for. :)

> The output contains the following command:
> ""C:\program files\bin\gccxml.exe"
> /IJ:\3rd\OpenSG\opensg2_trunk\build.win32.cl.9.0\instlinks\include
> /IC:\Program Files oost oost_1_36_0 -DBOOST_PYTHON_MAX_ARITY=21
> -I"." -I"osg_module"
> -I"J:\3rd\OpenSG\opensg2_trunk\build.win32.cl.9.0\instlinks\include"
> -I"J:\3rd\OpenSG\opensg2_trunk\build.win32.cl.9.0\instlinks\include\OpenSG"
> -I"j:\3rd\boost\boost_1_36_0" -I"c:\dev\python26\include"
> "osg_module\osgmodule_mainheader.h"
> -fxml="c:\users\marcusl\appdata\local\temp\tmp1e92ik.xml""
> Can you run the command, from cmd and check that file was created and
> contains data.

Ok. It came right back at me:

pyopensg/src> ** the above **
Could not determine compiler setting.
Could not determine GCCXML_FLAGS setting.

So, I changed it to run my compiled gccxml (pretty recent cvs head) and 
added "--gccxml-compiler cl" (I use VS9 and python 2.6) and fixed the 
include paths (pyopensg retrieves includepaths from the osg2-config 
python script, which used /I instead of /I and also had some non-escaped 
backslashes (turing 'c:\program files\boost' into 'c:\program files 
oost' as can be seen above :)

Running the modified cmd-line made gccxml run and print a whole lot, 
starting with:

error: #error Endian determination : could not guess your plattform

and ending up with an ICE.

It seems as I have to add a few defines and such to get the 
opensg-sources to identify the compiler correctly.

I can handle the osg2-config script myself, and probably figure out what 
defines are necessary, but where do I set compiler-arg + defines that 
are used when doing the cache-step that calls the above command?

Is this cache stuff in PyOpenSG or Py++? (because I can't seem to find 
any such call in gen_bindings.main() nor nearby related modules, unless 
I've missed something).


More information about the Cplusplus-sig mailing list