B
    b                 @   s   d Z dZddlZddlZddlZddlZddlZddl	m
Z
 dd ZejddZejjeed	ejjjejjjd
Zdd Zdd ZdS )zSCons.Tool.rmic

Tool-specific initialization for rmic.

There normally shouldn't be any need to import this module directly.
It will usually be imported through the generic SCons.Tool.Tool()
selection method.

z,__FILE__ __REVISION__ __DATE__ __DEVELOPER__    N)get_java_install_dirsc          	   C   s  | dd}| d}|sfy|d }W n tk
r>   d}Y n(X y|jj}W n tk
rd   d}Y nX || }t|dkrd}nt|tj	 }g }x|D ]}y|jj
}	W nv tk
r$   t|}	|r|	dt| |kr|	t|d }	|r |	dt|  |kr |	t| d }	Y nX | }||j_|	|j_
|| qW dg}
| dd	krl|
d
 g }x\|D ]T}xL|
D ]D}|jj
dtj	| | }| d |}| d |j_|| qW qvW ||fS )zsCreate and return lists of Java RMI stub and skeleton
    class files to be created from a set of class files.
    JAVACLASSSUFFIXz.classZJAVACLASSDIRr   .NZ_StubJAVAVERSIONz1.4Z_Skel)get
IndexErrorZ
attributesZjava_classdirAttributeErrorDirZrdirstrossepZjava_classnamelenZrfileappendreplaceFileZjava_lookupdir)targetsourceenvZclass_suffixZclassdirsZc_ZslistsrcZ	classnameZstub_suffixesZtlistZsufffnamet r   .lib/python3.7/site-packages/SCons/Tool/rmic.pyemit_rmic_classes.   sP    






r   z$RMICCOMz$RMICCOMSTRz$JAVACLASSSUFFIX)actionZemitterZ
src_suffixZtarget_factoryZsource_factoryc             C   s   t | d d< | d dkr^| dd}td|d}tjj| d|d	}|r^tj|}| 	d
| d| d< tj
d| d< d| d< d| d< dS )zCAdd Builders and construction variables for rmic to an Environment.ZBUILDERSZRMICZPLATFORMZwin32r   N)versionrmic)Zdefault_pathsPATH Z	RMICFLAGSz$RMIC $RMICFLAGS -d ${TARGET.attributes.java_lookupdir} -classpath ${SOURCE.attributes.java_classdir} ${SOURCES.attributes.java_classname}ZRMICCOMz.classr   )RMICBuilderr   r   SConsZToolZfind_program_pathr   pathdirnameZAppendENVPathZUtilZCLVar)r   r   pathsr   Zrmic_bin_dirr   r   r   generatek   s    r%   c             C   s   dS )N   r   )r   r   r   r   exists~   s    r'   )__doc__Z__revision__os.pathr   ZSCons.Actionr!   ZSCons.BuilderZSCons.Node.FSZ
SCons.UtilZSCons.Tool.JavaCommonr   r   ZActionZ
RMICActionZBuilderZNodeZFSr	   r   r    r%   r'   r   r   r   r   <module>	   s    5