
    pc+A                         d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	l
mZmZ d
 Zd Zd Zd Zd Zd Zd Zedk    r e             dS dS )    N   )config)	dbustypes)parser)codegen)codegen_docbook)codegen_rst)print_errorprint_warningc                 .    | D ]}|j         |k    r|c S d S N)name)arg_listarg_nameas      +/usr/share/glib-2.0/codegen/codegen_main.pyfind_argr   %   s1      6XHHH 4    c                 8    | j         D ]}|j        |k    r|c S d S r   )methodsr   )ifacemethodms      r   find_methodr   ,   3    ]  6VHHH 4r   c                 8    | j         D ]}|j        |k    r|c S d S r   )signalsr   )r   signalr   s      r   find_signalr   3   r   r   c                 8    | j         D ]}|j        |k    r|c S d S r   )
propertiesr   )r   propr   s      r   	find_propr#   :   s2      6T>>HHH 4r   c                 h   d }| D ]}	|	j         |k    r|	} n|"t          d                    |                     d }
|rt          ||          }|#t          d                    ||                     |rUt	          |j        |          }|;t	          |j        |          }|$t          d                    |||                     |}
n|}
n|rxt          ||          }|#t          d                    ||                     |r>t	          |j        |          }|$t          d                    |||                     |}
n?|}
n<|r8t          ||          }|#t          d                    ||                     |}
n|}
|
j
                            dt          j        ||                     d S )NzNo interface "{}"z No method "{}" on interface "{}"z,No arg "{}" on method "{}" on interface "{}"z No signal "{}" on interface "{}"z,No arg "{}" on signal "{}" on interface "{}"z"No property "{}" on interface "{}"r   )r   r
   formatr   r   in_argsout_argsr   argsr#   annotationsinsertr   
Annotation)
iface_listr   r   r   r"   argkeyvalue	iface_obji
target_obj
method_objarg_obj
signal_objprop_objs                  r   apply_annotationr7   A   s   I  6U??IE  '..u55666J & F33
:AA&%PPQQQ 	$z1377G":#6<<?FMM   
 !JJ#JJ	  F33
:AA&%PPQQQ 
	$z44GBIIVU   
 !JJ#JJ	 Y--<CCD%PPQQQ


!!!Y%9#u%E%EFFFFFr   c                    |D ]\  }}}|                     d          }|dk    r|d|         }||dz   d          }|                     d          }|dk    rM||dz   d          }|d|         }|                     d          }|d|         }t          | |d |d |||           t          | |d |d d ||           |                     d          }|dk    r/|d|         }||dz   d          }	t          | |d d |	d ||           |                     d	          }|dk    r|d|         }
|
                    d
          }|
d|         }|
|dz   d          }|                     d          }|dk    rD||dz   d          }|                     d          }|d|         }t          | ||d d |||           t          | ||d d d ||           |}t          | |d d d d ||           d S )Nz::r      [r   ]:z().)findr7   rfind)r,   annotation_listwhatr.   r/   posr   r   r-   r"   combinedr   s               r   apply_annotationsrE   w   si   - 1 1sEiioo"993KE#'))_F++c""CbyyS1WYY'#hhsmm!C%j UD&$SRWXXXX tVT4e    ))C..CbyyQsUC!GII UD$dCQVWWWWiioo"99#AcE{H"..--C$QsUOE%cAgii0F))C..Cbyy"3799o!hhsmm!!C%j(&vtT3U    )&vtT4e   
 !E$"E4tT3   _1 1r   c                     t          j        d          } |                     dddd           |                     ddd	g t           j        
           |                     dddd           |                     dddd           |                     ddd           |                     dg ddd           |                     ddd           |                     d dd!           |                     d"dd#           |                     d$d%d	d&d'(           |                     d)d*d+           |                     d,d*d-           |                     d.d/0           |                     d1d20           |                     d3d40           |                                 }|                    d5dd6           |                    d7dd8           |                    d9dd:           |                    d;dd<           |                    d=dd>           |                                 }|                    d?dd@           |                    dAdBddC           |                                 }t          |j                  dDk    rt          dE           |j	        |j
        |j        |j        t          dF           |j	        rl|j	        dGz   }t          j                            |j        |          }dH|_        t          j                            |j        |j	        dIz             }dH|_        n|j        r>|j        t          dJ           |j        }t          j                            |          }nC|j        rc|j        t          dK           |j        }t          j                            t          j                            |                    dD         dGz   }n|j        rS|j        t          dL           |j        rt          dM           |j        }t          j                            |          }n|j        rx|j        t          dN           |j        rt          dO           |j        }t          j                            t          j                            |                    dD         dGz   }|j        r	 |j                            dPd%          }t7          |dD                   t7          t          |          dQk    r|dQ         ndD          f}t7          t          |          dRk    r|dR         ndD          }n># t8          t:          f$ r* t          dS                    |j                             Y nw xY w|dTk     r't          dU                    |j                             ndT}|j        r	 |j                            dPd%          }t7          |dD                   t7          t          |          dQk    r|dQ         ndD          f}	t7          t          |          dRk    r|dR         ndD          }nV# t8          t:          f$ r* t          dV                    |j                             Y nw xY wt@          j!        t@          j"        f}	|j#        |j$        s|j%        rt          dW           |	dD         |	dQ         |	dQ         dRz  z   f}	|	|k     r#t          dX                    ||	                     g }
g }tM          |j'        |j        z             D ]}tQ          |dY          5 }|)                                }d d d            n# 1 swxY w Y   tU          j+        ||dZk    [          }|
,                    |           |-                    t          j                            |                     |j.        t_          |
|j.                   |
D ]"}|0                    |j1        |j2                   #|j
        }tg          j4        |
          }|r|5                    ||j                   |j        }tm          j7        |
          }|r|5                    ||j                   |j        rxtQ          |d\          5 }tq          j9        |
|j2        |j        |j:        |||j;        ||j#        |j$        |          }|5                                 d d d            n# 1 swxY w Y   |j        rgtQ          |d\          5 }tq          j<        |
|j2        |j        |||||j%        |	  	        }|5                                 d d d            n# 1 swxY w Y   |j        rltQ          |d\          5 }tq          j=        |
|j2        |||j;        ||j#        |j$        |	  	        }|5                                 d d d            n# 1 swxY w Y   |j        r`tQ          |d\          5 }tq          j>        |
|j2        ||||j%        |          }|5                                 d d d            n# 1 swxY w Y   t          j@        dD           d S )]Nz&D-Bus code and documentation generator)descriptionfilesFILE+zD-Bus introspection XML file)metavarnargshelpz--xml-filesappend)rK   actiondefaultrM   z--interface-prefixPREFIX z<String to strip from D-Bus interface names for code and docs)rK   rP   rM   z--c-namespace	NAMESPACEz)The namespace to use for generated C codez--c-generate-object-manager
store_truezCGenerate a GDBusObjectManagerClient subclass when generating C code)rO   rM   z--c-generate-autocleanup)noneobjectsallrV   zGenerate autocleanup support)choicesrP   rM   z--generate-docbookOUTFILESz2Generate Docbook in OUTFILES-org.Project.IFace.xml)rK   rM   z--generate-rstz;Generate reStructuredText in OUTFILES-org.Project.IFace.rstz--pragma-oncez(Use "pragma once" as the inclusion guardz
--annotate   zWHAT KEY VALUEz*Add annotation (may be used several times))rL   rO   rK   rM   z--glib-min-requiredVERSIONzMMinimum version of GLib to be supported by the outputted code (default: 2.30)z--glib-max-allowedzXMaximum version of GLib to be used by the outputted code (default: current GLib version)z--symbol-decoratorzSMacro used to decorate a symbol in the outputted header, possibly to export symbols)rM   z--symbol-decorator-headerzHAdditional header required for decorator specified by --symbol-decoratorz--symbol-decorator-definezHAdditional define required for decorator specified by --symbol-decoratorz--generate-c-codez Generate C code in OUTFILES.[ch]z--headerzGenerate C headersz--bodyzGenerate C codez--interface-info-headerz$Generate GDBusInterfaceInfo C headerz--interface-info-bodyz"Generate GDBusInterfaceInfo C codez--outputz$Write output into the specified filez--output-directoryOUTDIRz"Location to output generated filesr   zHThe "--xml-files" option is deprecated; use positional arguments insteadzlUsing --generate-c-code or --generate-docbook or --generate-rst and --output at the same time is not allowedz.hTz.cz Using --header requires --outputzUsing --body requires --outputz/Using --interface-info-header requires --outputzH--c-generate-object-manager is incompatible with --interface-info-headerz-Using --interface-info-body requires --outputzF--c-generate-object-manager is incompatible with --interface-info-bodyr>   r   r:   u0   Unrecognized --glib-min-required string ‘{}’)r:      uD   Invalid --glib-min-required string ‘{}’: minimum version is 2.30u/   Unrecognized --glib-max-allowed string ‘{}’z\--symbol-decorator-define and --symbol-decorator-header must be used with --symbol-decoratorz`Invalid versions: --glib-min-required ({}) must be less than or equal to --glib-max-allowed ({})rb)r:   @   )h_type_implies_unix_fdw)AargparseArgumentParseradd_argumentSUPPRESSadd_mutually_exclusive_group
parse_argslen	xml_filesr   generate_c_codegenerate_docbookgenerate_rstoutputr
   ospathjoinoutput_directoryheaderbodybasenamesplitextinterface_info_headerc_generate_object_managerinterface_info_bodyglib_min_requiredsplitint
ValueError
IndexErrorr%   glib_max_allowedr   MAJOR_VERSIONMINOR_VERSIONsymbol_decoratorsymbol_decorator_headersymbol_decorator_definesortedrH   openreadr   parse_dbus_xmlextendrN   annotaterE   post_processinterface_prefixc_namespacer   DocbookCodeGeneratorgenerater	   RstCodeGeneratorr   HeaderCodeGeneratorc_generate_autocleanuppragma_onceCodeGenerator InterfaceInfoHeaderCodeGeneratorInterfaceInfoBodyCodeGeneratorsysexit)
arg_parsergroupr(   header_nameh_filec_filepartsry   _r~   
all_ifacesinput_files_basenamesfnamefxml_dataparsed_ifacesr1   docbookdocbook_genrstrst_genoutfilegens                          r   codegen_mainr      sH   (<  J s1O          K	     8	     %R    
 "***+	     A    
 J    
 7    
  9          *     %    
 #    
 #     3355E	Z6X     
z,=QRRR	x;LMMM	!3    
 
1     3355E	F)O     
1	       ""D
4>QV	
 	
 	

 	( ,(
+
!7	
 	
 	

  'K*T1d3[AAd3T5ID5PQQ			 !K;:;;;g&&v..	 K;8999g&&rw'7'7'?'?@@CdJ		# K;IJJJ) 	*  
 g&&v..		! 
K;GHHH) 	(  
 g&&rw'7'7'?'?@@CdJ
  $
	*00a88E!$U1XE

QE!HHTU0V0V WE

QE!HHA66AAJ' 	 	 	BII*     	 w&&""(&)?"@"@  
 $  H
	)//Q77E #E!Hss5zzA~~588ST/U/UVE

QE!HHA66AAJ' 	 	 	AHH)     	 #0&2FG $' 	4+G 	2   	/2Q67
 +++<<BF!#3= =	
 	
 	
 J
T^344 > >% 	 !vvxxH	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 -.?7.J
 
 
 	-((($$RW%5%5e%<%<====} *dm444 @ @	t,d.>????#G!6zBBK =Wd&;<<<

C*:66G
 5d3444{ &# 	'- .+% !%, C LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  y &# 	'' .%!,
 
C LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ! &# 	': % !%,
 
C LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	  &# 
	'8 %!, C LLNNN
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 HQKKKKKs   	BU 8V	V	BY	 	8ZZ:]]	"]	Ac--c14c1A ee"e=Aggg09h55h9<h9__main__)rb   rn   r   rR   r   r   r   r   r   r	   utilsr
   r   r   r   r   r#   r7   rE   r   __name__ r   r   <module>r      s<  0  				 



                                     - - - - - - - -        3G 3G 3Gl3 3 3lC C CL
 zLNNNNN r   