@@ -635,6 +635,53 @@ def generate_enums_for_file(self, file):
635
635
self .emitline (" .. attribute:: {0}({1})" .format (enum_name , enum_value ))
636
636
self .emitline ("" )
637
637
638
+ class WinFuncDocGenerator (NoTemplatedGenerator ):
639
+ def copy_template (self ):
640
+ self .emitline (".. module:: windows.generated_def.winfuncs" )
641
+ self .emitline ("" )
642
+ self .emitline ("Functions" )
643
+ self .emitline ("----------" )
644
+
645
+
646
+ def generate (self ):
647
+ self .copy_template ()
648
+ for file in self .files :
649
+ for function in file .data :
650
+ self .generate_function_doc (function )
651
+
652
+ def generate_function_doc (self , function ):
653
+ param_list = ", " .join (name for t , name in function .params )
654
+ self .emitline (".. function:: {0}({1})" .format (function .name , param_list ))
655
+ self .emitline ("" )
656
+
657
+
658
+
659
+ class ComDocGenerator (NoTemplatedGenerator ):
660
+ def copy_template (self ):
661
+ self .emitline (".. module:: windows.generated_def.interfaces" )
662
+ self .emitline ("" )
663
+ self .emitline ("Interfaces" )
664
+ self .emitline ("----------" )
665
+
666
+
667
+ def generate (self ):
668
+ self .copy_template ()
669
+ for file in self .files :
670
+ interface = file .data
671
+ self .generate_interface_doc (interface )
672
+
673
+ def generate_interface_doc (self , interface ):
674
+ self .emitline (".. class:: {0}" .format (interface .name ))
675
+ self .emitline ("" )
676
+ for method in interface .methods :
677
+ self .emitline (" .. method:: {0}" .format (method .name ))
678
+ self .emitline ("" )
679
+ self .emitline ("" )
680
+
681
+
682
+
683
+
684
+
638
685
META_WALKER = """
639
686
def generate_walker(namelist, target_module):
640
687
def my_walker():
@@ -827,23 +874,25 @@ def modules_exports(self):
827
874
828
875
print ("== Generating COM interfaces ==" )
829
876
# Generate COM interfaces
830
- com_module_generator = ModuleGenerator ("interfaces" , COMParsedFile , COMCtypesGenerator , None , from_here (r"definitions\com" ))
877
+ com_module_generator = ModuleGenerator ("interfaces" , COMParsedFile , COMCtypesGenerator , ComDocGenerator , from_here (r"definitions\com" ))
831
878
# Load the interface_to_iid file needed by the 'COMCtypesGenerator'
832
879
com_module_generator .after_ctypes_generator_init = lambda cgen : cgen .parse_iid_file (from_here ("definitions\\ interface_to_iid.txt" ))
833
880
com_module_generator .parse_source_directory (recurse = True )
834
881
com_module_generator .add_module_dependancy (structure_module_generator )
835
882
com_module_generator .resolve_dependancies = com_module_generator .check_dependancies_without_flattening # No real flattening as we have circular dep in Interfaces VTBL
836
883
com_module_generator .resolve_dep_and_generate ([BasicTypeNodes ()])
884
+ com_module_generator .generate_doc (from_here (r"..\docs\source\interfaces_generated.rst" ))
837
885
838
886
print ("== Generating functions ==" )
839
887
# Generate function
840
- functions_module_generator = ModuleGenerator ("winfuncs" , FunctionParsedFile , FunctionCtypesGenerator , None , from_here (r"definitions\functions" ))
888
+ functions_module_generator = ModuleGenerator ("winfuncs" , FunctionParsedFile , FunctionCtypesGenerator , WinFuncDocGenerator , from_here (r"definitions\functions" ))
841
889
# no template file
842
890
functions_module_generator .get_template_filename = lambda : None
843
891
functions_module_generator .parse_source_directory ()
844
892
functions_module_generator .add_module_dependancy (structure_module_generator )
845
893
functions_module_generator .add_module_dependancy (com_module_generator )
846
894
functions_module_generator .resolve_dep_and_generate ([BasicTypeNodes ()])
895
+ functions_module_generator .generate_doc (from_here (r"..\docs\source\winfuncs_generated.rst" ))
847
896
848
897
849
898
print ("== Generating META file ==" )
0 commit comments