[pygccxml-commit] SF.net SVN: pygccxml: [997] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-04-17 21:07:12
|
Revision: 997 http://svn.sourceforge.net/pygccxml/?rev=997&view=rev Author: roman_yakovenko Date: 2007-04-17 14:07:13 -0700 (Tue, 17 Apr 2007) Log Message: ----------- adding user defined header files to generated code Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/compound.py pyplusplus_dev/pyplusplus/code_creators/declaration_based.py pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py pyplusplus_dev/pyplusplus/file_writers/single_file.py Modified: pyplusplus_dev/pyplusplus/code_creators/compound.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/compound.py 2007-04-17 12:40:13 UTC (rev 996) +++ pyplusplus_dev/pyplusplus/code_creators/compound.py 2007-04-17 21:07:13 UTC (rev 997) @@ -86,3 +86,4 @@ if unique: files = self.unique_headers( files ) return files + \ No newline at end of file Modified: pyplusplus_dev/pyplusplus/code_creators/declaration_based.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/declaration_based.py 2007-04-17 12:40:13 UTC (rev 996) +++ pyplusplus_dev/pyplusplus/code_creators/declaration_based.py 2007-04-17 21:07:13 UTC (rev 997) @@ -50,4 +50,7 @@ if None is self.declaration.documentation: return '' return self.declaration.documentation - \ No newline at end of file + + def get_user_headers( self, recursive=False, unique=False ): + """return list of user header files to be included from the generated file""" + return self.declaration.include_files Modified: pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-04-17 12:40:13 UTC (rev 996) +++ pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-04-17 21:07:13 UTC (rev 997) @@ -31,6 +31,7 @@ self._exportable_reason = None self._documentation = None self.__msgs_to_ignore = set() + self._include_files = [] @property def logger( self ): @@ -150,7 +151,6 @@ def _readme_impl( self ): return [] - def readme( self, skip_ignored=True ): """This function will returns some hints/tips/description of problems that applied to the declarations. For example function that has argument @@ -192,3 +192,8 @@ raise RuntimeError( "Unable to find out message id. The message is: " + msg ) self.__msgs_to_ignore.add( msg ) disable_warnings = disable_messages + + @property + def include_files( self ): + """list of header files, to be included from the file, the generated code will be placed-in""" + return self._include_files \ No newline at end of file Modified: pyplusplus_dev/pyplusplus/file_writers/single_file.py =================================================================== --- pyplusplus_dev/pyplusplus/file_writers/single_file.py 2007-04-17 12:40:13 UTC (rev 996) +++ pyplusplus_dev/pyplusplus/file_writers/single_file.py 2007-04-17 21:07:13 UTC (rev 997) @@ -7,11 +7,10 @@ import os import writer +from pyplusplus import code_creators class single_file_t(writer.writer_t): - """ - This class writes all code into single file. - """ + """generates all code into single cpp file""" def __init__(self, extmodule, file_name): writer.writer_t.__init__(self, extmodule) @@ -21,6 +20,15 @@ return self.__fname file_name = property( _get_file_name ) - def write(self): + def write(self): + user_headers = [] + creators = filter( lambda creator: isinstance( creator, code_creators.declaration_based_t ) + , code_creators.make_flatten( self.extmodule ) ) + map( lambda creator: user_headers.extend( creator.get_user_headers() ) + , creators ) + user_headers = code_creators.code_creator_t.unique_headers( user_headers ) + map( lambda header: self.extmodule.add_include( header ) + , user_headers ) self.write_code_repository( os.path.split( self.file_name )[0] ) - self.write_file( self.file_name, self.extmodule.create() ) \ No newline at end of file + self.write_file( self.file_name, self.extmodule.create() ) + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |