[solved] "-g ogrenewt" fails

makism

15-06-2009 15:44:58

hello, it`s me again :P

first of all, i searched the forums but they are chaotic o_O and i haven`t found any solution...
i was using python 2.6 and then i couldn`t "-g ogrenewt" and i thought that maybe that was
the problem.
i downgraded to 2.5 i switched back to the 1-6-something branch, but the problem remains.

i have applied the patches...

06-15 17:38 PythonOgre.BuildModule INFO Building Source code for ogrenewt
06-15 17:38 PythonOgre.BuildModule DEBUG Spawning 'python generate_code.py' in '/media/Files/Python-Ogre/python-ogre/code_generators/ogrenewt'
06-15 17:39 PythonOgre.BuildModule WARNING Task Failed
06-15 17:39 PythonOgre.BuildModule DEBUG
06-15 17:39 PythonOgre.BuildModule DEBUG INFO Creating xml file "/media/Files/Python-Ogre/python-ogre/code_generators/cache/ogrenewt_r2429_cache.xml" from source file "/media/Files/Python-Ogre/python-ogre/code_generators/ogrenewt/python_ogrenewt.h" ...
INFO gccxml cmd: /media/Files/Python-Ogre/root/usr/bin/gccxml -I"/media/Files/Python-Ogre/python-ogre" -I"/media/Files/Python-Ogre/root/usr/include/boost-1_38" -I"/media/Files/Python-Ogre/newtonSDK/sdk" -I"/media/Files/Python-Ogre/root/usr/include/OGRE" -I"/media/Files/Python-Ogre/root/usr/include/OgreNewt" -I"/media/Files/Python-Ogre/root/usr/include/OGRE" -D"OGRE_NONCLIENT_BUILD" -D"__PYTHONOGRE_BUILD_CODE" -D"ogrenewt_NONCLIENT_BUILD" -D"OIS_NONCLIENT_BUILD" -D"VERSION_r2429" -D"BOOST_IS_ENUM" "/media/Files/Python-Ogre/python-ogre/code_generators/ogrenewt/python_ogrenewt.h" -fxml="/media/Files/Python-Ogre/python-ogre/code_generators/cache/ogrenewt_r2429_cache.xml"
Traceback (most recent call last):
File "generate_code.py", line 313, in <module>
generate_ogrenewt()
File "generate_code.py", line 232, in generate_ogrenewt
, indexing_suite_version=2 )
File "/media/Files/Python-Ogre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 88, in __init__
, indexing_suite_version)
File "/media/Files/Python-Ogre/root/usr/lib/python2.5/site-packages/pyplusplus/module_builder/boost_python_builder.py", line 130, in __parse_declarations
decls = reader.read_files( files, compilation_mode )
File "/media/Files/Python-Ogre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 225, in read_files
return self.__parse_file_by_file(files)
File "/media/Files/Python-Ogre/root/usr/lib/python2.5/site-packages/pygccxml/parser/project_reader.py", line 262, in __parse_file_by_file
reader.create_xml_file( header, prj_file.cached_source_file )
File "/media/Files/Python-Ogre/root/usr/lib/python2.5/site-packages/pygccxml/parser/source_reader.py", line 169, in create_xml_file
raise error
pygccxml.parser.source_reader.gccxml_runtime_error_t: Error occured while running GCC-XML: In file included from /media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/type_traits/composite_traits.hpp:17,
from /media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/function/function_base.hpp:24,
from /media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/function/detail/prologue.hpp:17,
from /media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/function.hpp:24,
from /media/Files/Python-Ogre/root/usr/include/OgreNewt/OgreNewt_World.h:17,
from /media/Files/Python-Ogre/root/usr/include/OgreNewt/OgreNewt.h:23,
from /media/Files/Python-Ogre/python-ogre/code_generators/ogrenewt/python_ogrenewt.h:9:
/media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/type_traits/is_enum.hpp:181: error: a function call cannot appear in a constant-expression
/media/Files/Python-Ogre/root/usr/include/boost-1_38/boost/type_traits/is_enum.hpp:181: error: template argument 2 is invalid



btw, i think i`m getting a similar problem with bullter, not sure though, i`ll post again :P

edit: i even tried to use newton2.0 (by editing environment.py) but i can`t remember if it was when using 2.6 or now, with 2.5...

dermont

16-06-2009 22:49:47

Not too sure of the answer to your problem since I don't use ogrenewt , but things that you may wan't to try:

Try editing code_generators/ogrenewt/generate_code.py, may cause compile to fail:

#if environment.isLinux():
# defined_symbols.append('BOOST_IS_ENUM')


Look at the ogrenewt module in environment.py, it appears to build against boost-1_37 and you are using 1_38.

scons prefix=%s boost=%s/include/boost-1_37 build
scons prefix=%s boost=%s/include/boost-1_37 install

makism

17-06-2009 07:11:00

i appreciate your answer.

in the mean time, i thought i would try to compile the trunk against python 2.5...
so, as soon as it finishes i`ll give it a shot!

:-)


p.s.: i`ll post again :P

makism

17-06-2009 12:09:38

#if environment.isLinux():
# defined_symbols.append('BOOST_IS_ENUM')

but that would give me some error about symbols when importing ogre.physics.OgreNewt.

i had also to change environment.py to
scons prefix=%s boost=%s/include/boost-1_38 build
scons prefix=%s boost=%s/include/boost-1_38 install



(well just as a reference in case somebody else has the same problem)