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ejjZ	i Z
dd„ Zdd„ Zdd	„ Zd
d„ ZdS )zçSCons.Tool.sunc++

Tool-specific initialization for C++ on SunOS / Solaris.

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__é    Nc             C   sš  yt |  S  tk
r”   d }d }ddlm} y&tdddd}| ¡ }W d Q R X W n tk
rh   Y n4X t d|  tj	¡}| 
|¡}	|	rœtj |	 d¡¡}ytj|d	| gd
tj|d}
W n tk
rÎ   Y n6X |
 ¡ d }t dtj	¡}| 
|¡}|r| d¡}|d kr€ytj|d	| gd
tj|d}
W n tk
rB   Y n>X |
 ¡ d }t dtj	¡}| 
|¡}|r€tj | d¡¡}||ft | < t |  S X d S )Nr   )ÚDEVNULLz/var/sadm/install/contentsÚrzUTF-8)Úencodingz^(\S*/bin/CC)(=\S*)? %s$é   z-lT)Zuniversal_newlinesÚstdoutÚstderrz^ *VERSION:\s*(.*)$z^Pathname:\s*(.*/bin/CC)$)Úpackage_infoÚKeyErrorÚ
subprocessr   ÚopenÚreadÚEnvironmentErrorÚreÚcompileÚMÚsearchÚosÚpathÚdirnameÚgroupÚPopenÚPIPEZcommunicate)Zpackage_nameÚpkginfoÚpkgchkÚversionÚpathnamer   ÚfZsadm_contentsZsadm_reZ
sadm_matchÚpZpkginfo_contentsZ
version_reZversion_matchZpkgchk_contentsZpathname_reZpathname_match© r   ú0lib/python3.7/site-packages/SCons/Tool/suncxx.pyÚget_package_info1   sT    




r    c       	      C   sv   |   d¡}|rtj |¡}nd }d }|   d¡}|   d¡}x0dD ](}t|||ƒ\}}|r>|r>|| }}P q>W |dd|fS )Nz$CXXz$PKGINFOz$PKGCHK)ZSPROcplZCC)Zsubstr   r   r   r    )	ÚenvÚcxxZcppcPathZcppcVersionr   r   Úpackager   r   r   r   r   Úget_cppcg   s    




r$   c             C   sv   t | ƒ\}}}}|r0tj ||¡}tj ||¡}t | ¡ || d< || d< || d< tj d¡| d< d| d< d| d	< d
S )z7Add Builders and construction variables for SunPRO C++.ZCXXZSHCXXZ
CXXVERSIONz$CXXFLAGS -KPICZ
SHCXXFLAGSZso_ZSHOBJPREFIXz.oZSHOBJSUFFIXN)	r$   r   r   ÚjoinÚ	cplusplusÚgenerateÚSConsZUtilZCLVar)r!   r   r"   Úshcxxr   r   r   r   r'   |   s    
r'   c             C   s:   t | ƒ\}}}}|r6|r6tj ||¡}tj |¡r6|S d S )N)r$   r   r   r%   Úexists)r!   r   r"   r)   r   Zcppcr   r   r   r*      s    r*   )Ú__doc__Z__revision__r(   r   r   r
   ZSCons.Tool.cxxZToolr"   r&   r   r    r$   r'   r*   r   r   r   r   Ú<module>	   s   6