o
    (c
                     @   s   d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZ de	e fddZd	Zdefd
dZedeee	e f Zde	e defddZe dde	e dee fddZe dee fddZe defddZe defddZdS )    N)DistutilsPlatformError)	lru_cache)DictListNewTypeOptional)Versionreturnc                	   C   s2   zt t dd W S  tjtfy   Y d S w )N    )r   _rust_versionsplit
subprocessCalledProcessErrorOSError r   r   >usr/lib/python3.10/site-packages/setuptools_rust/rustc_info.pyget_rust_version	   s
   r   zhost: c                  C   s:   t   D ]} | tr| ttd     S qtd)NzCould not determine rust host)_rust_version_verbose
splitlines
startswith_HOST_LINE_STARTlenstripr   )liner   r   r   get_rust_host   s
   
r   RustCfgstarget_triplec                 C   sh   t i }t| D ])}|jddd}t|dkr#|d d||d < qt|dks+J d ||d < q|S )N=r   )maxsplit   "r   )r   get_rust_target_infor   r   r   )r   ZcfgsentryZmaybe_splitr   r   r   get_rustc_cfgs"   s   r$   c                 C   s0   g d}| r| d| g tj|dd}| S )N)rustc--printcfgz--targetTtext)extendr   check_outputr   )r   cmdoutputr   r   r   r"   .   s
   r"   c                  C   s   t jg ddd} |  S )N)r%   r&   ztarget-listTr(   )r   r+   r   )r-   r   r   r   get_rust_target_list7   s   r.   c                   C      t jddgddS )Nr%   z-VTr(   r   r+   r   r   r   r   r   =      r   c                   C   r/   )Nr%   z-VvTr(   r0   r   r   r   r   r   B   r1   r   )N)r   distutils.errorsr   	functoolsr   typingr   r   r   r   Zsemantic_versionr   r   r   strr   r   r$   r"   r.   r   r   r   r   r   r   <module>   s$    	
