[pygccxml-commit] SF.net SVN: pygccxml: [1112] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-08-27 16:29:26
|
Revision: 1112 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1112&view=rev Author: roman_yakovenko Date: 2007-08-26 12:36:11 -0700 (Sun, 26 Aug 2007) Log Message: ----------- fixing few bugs in mutli-module development feature Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py pyplusplus_dev/pyplusplus/module_creator/creator.py pyplusplus_dev/unittests/data/split_module_to_be_exported.hpp pyplusplus_dev/unittests/split_module_tester.py Modified: pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2007-08-26 19:36:11 UTC (rev 1112) @@ -169,8 +169,11 @@ pass # for inner class this code will generate error :-(((( def _create_impl( self ): - if self.declaration.already_exposed: - return '' + #if self.declaration.already_exposed: + # return '' + #This is the error to skip generation in case the class is already exposed, + #because we still expose container, so it needs to know how to work with + #the value_type return self.generate_value_traits() def _get_system_headers_impl( self ): Modified: pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2007-08-26 19:36:11 UTC (rev 1112) @@ -147,9 +147,6 @@ +"Thus it will be able to generate code, that uses " \ +" BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID macro in a right places." ) - def _get_already_exposed_impl( self ): - return self._already_exposed - @property def class_var_name(self): return self.alias + '_exposer' Modified: pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-08-26 19:36:11 UTC (rev 1112) @@ -98,14 +98,11 @@ ignore = property( _get_ignore, _set_ignore , doc="boolean flag, which says whether to export declaration to Python or not" ) - def _get_already_exposed_impl( self ): + def get_already_exposed( self ): return self._already_exposed - - def _get_already_exposed( self ): - return self._get_already_exposed_impl() - def _set_already_exposed( self, value ): + def set_already_exposed( self, value ): self._already_exposed = value - already_exposed = property( _get_already_exposed, _set_already_exposed + already_exposed = property( get_already_exposed, set_already_exposed , doc="boolean flag, which says whether the declaration is already exposed or not" ) def exclude( self, compilation_errors=False ): Modified: pyplusplus_dev/pyplusplus/module_creator/creator.py =================================================================== --- pyplusplus_dev/pyplusplus/module_creator/creator.py 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/pyplusplus/module_creator/creator.py 2007-08-26 19:36:11 UTC (rev 1112) @@ -143,6 +143,7 @@ if self.__dependencies_manager.is_already_exposed( decl ): #check wether this is already exposed in other module + decl.already_exposed = True continue if isinstance( decl.parent, declarations.namespace_t ): @@ -282,10 +283,13 @@ used_containers = filter( lambda cls: cls.indexing_suite.include_files , used_containers ) used_containers.sort( cmp_by_name ) - for cls in used_containers: - for msg in cls.readme(): - self.decl_logger.warn( "%s;%s" % ( cls, msg ) ) + for cls in used_containers: + self.__print_readme( cls ) + if self.__dependencies_manager.is_already_exposed( cls ): + cls.already_exposed = True + continue + cls_creator = create_cls_cc( cls ) self.__dependencies_manager.add_exported( cls ) creators.append( cls_creator ) Modified: pyplusplus_dev/unittests/data/split_module_to_be_exported.hpp =================================================================== --- pyplusplus_dev/unittests/data/split_module_to_be_exported.hpp 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/unittests/data/split_module_to_be_exported.hpp 2007-08-26 19:36:11 UTC (rev 1112) @@ -9,10 +9,18 @@ #include "boost/shared_ptr.hpp" //#include BOOST_HASH_MAP_HEADER #include <map> +#include <vector> #include <string> namespace split_module{ +typedef std::vector< std::vector< int > > naive_matrix_t; + +inline naive_matrix_t create_zero_matrix( unsigned int x ){ + return naive_matrix_t(); +} + + struct op_struct{}; inline op_struct* get_opaque(){ Modified: pyplusplus_dev/unittests/split_module_tester.py =================================================================== --- pyplusplus_dev/unittests/split_module_tester.py 2007-08-19 19:42:34 UTC (rev 1111) +++ pyplusplus_dev/unittests/split_module_tester.py 2007-08-26 19:36:11 UTC (rev 1112) @@ -7,8 +7,9 @@ import sys import unittest import autoconfig +from pyplusplus import utils import fundamental_tester_base - +from pygccxml import declarations from pyplusplus import module_builder from pyplusplus.module_builder import call_policies @@ -25,6 +26,12 @@ def customize( self, mb ): mb.global_ns.exclude() + + exposed_db = utils.exposed_decls_db_t() + exposed_db.expose( declarations.remove_declarated( mb.global_ns.typedef( 'naive_matrix_t' ).type ) ) + exposed_db.save( autoconfig.build_dir ) + mb.register_module_dependency( autoconfig.build_dir ) + sm = mb.global_ns.namespace( name='split_module' ) sm.include() sm.class_( 'op_struct' ).exclude() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |