[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.
|