o
     JAf1                     @   sD  	 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lmZ d dl	m
ZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& e$ Z'ej(dkr]d dl	m)Z) ej*de+d	d
 dddZee!ddZ,eee'Zeee'Z-dddZ.dZ/zesej0Z/W n	 e1y   Y nw dd Z2dddZ3dddZ4dS )    N)partial   )DistutilsPlatformError)_PREFIX_BASE_PREFIX_EXEC_PREFIX_BASE_EXEC_PREFIX_PROJECT_BASE_PYTHON_BUILD_init_posixparse_config_h_init_non_posix_is_python_source_dir	_sys_home_variable_rx_findvar1_rx_findvar2_rxexpand_makefile_varsis_python_buildget_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_python_versionnt)_fix_pcbuildzCThe distutils.sysconfig module is deprecated, use sysconfig instead   )
stacklevelc                 C   s   t | |dS )N)vars)sysconfig_parse_config_h)fpg r"   */usr/lib/python3.10/distutils/sysconfig.pyr   B   s   r   T)Z
check_homec              	   C   s  	 ddl m} || ddddd}|d u ri }i }i }	 | }|d u r$n@tt|}|rc|dd\}}	|	 }	|	dd	}
d
|
v rG|	||< nzt	|	}	W n t
y^   |	dd
||< Y nw |	||< qd}|r5t|D ]}|| }tt|p~tt|}|r/|d}d}||v rt|| }n>||v rd}n7|tjv rtj| }n,||v r|dr|dd  |v rd	}nd| |v rd}nt|d|  }nd	 ||< }|r.|| d  }|d |  | | }d
|v r|||< qmzt	|}W n t
y   | ||< Y nw |||< ||= |dr.|dd  |v r.|dd  }||vr.|||< qm||= qm|si|  | D ]\}}	t|	trM|	 ||< q=|| |S )Nr   )TextFiler   surrogateescape)Zstrip_commentsZskip_blanksZ
join_lineserrorsTr   z$$ $)CFLAGSLDFLAGSCPPFLAGSFZPY_   )Zdistutils.text_filer$   readlinerematchr   groupstripreplaceint
ValueErrorlistsearchr   r   strosenviron
startswithendstartcloseitems
isinstanceupdate)fnr!   r$   r    doneZnotdonelinemnvZtmpvZrenamed_variablesnamevaluefounditemZafterkr"   r"   r#   parse_makefileM   s   




2
rL   r'   c              	   C   s  	 | j dkrtjdkrtdsdd l}|t dtd< tdddd	d
ddd\}}}}}}}}	dtj	v rUtj	d }
tjdkrSd
tj	vrS|
|rS|
|t|d   }|
}dtj	v r_tj	d }d
tj	v ritj	d
 }dtj	v rttj	d }n|d }dtj	v r|d tj	d  }dtj	v r|d tj	d  }|d tj	d  }dtj	v r|d tj	d  }|d tj	d  }|d tj	d  }dtj	v rtj	d }dtj	v r|d tj	d  }n|d |	 }|d | }| j|||d | ||||d || _d S d S )NZunixdarwinZCUSTOMIZED_OSX_COMPILERr   TrueZCCZCXXr)   ZCCSHAREDZLDSHAREDZSHLIB_SUFFIXZARZARFLAGSZCPPz -Er*    r+   )ZpreprocessorcompilerZcompiler_soZcompiler_cxxZ	linker_soZ
linker_exearchiver)Zcompiler_typesysplatform_config_varsget_osx_supportcustomize_compilerr   r8   r9   r:   lenZset_executablesZshared_lib_extension)rP   rV   ZccZcxxZcflagsZccsharedZldsharedZshlib_suffixarZar_flagsZnewccZcpprQ   Zcc_cmdr"   r"   r#   rW      sh   


	


















	rW   c                 C   s   	 |d u r| r	t p
t}tjdkr6tr'| rtptS tjt	dd}tj
|S dt  t }tj|d|S tjdkrVtrOtj|dtjj tj|d S tj|dS tdtj )	NposixZsrcdirZIncludepythonZincluder   ZPCzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIXBASE_PREFIXr8   rG   python_buildr   project_basepathjoinr   normpathr   build_flagspathsepr   )plat_specificprefixZincdirZ
python_dirr"   r"   r#   get_python_inc  s,   


rg   c                 C   s   	 |d u r|r| rt pt}n| rtpt}tjdkr9| s|r!tj}nd}tj	||dt
  }|r2|S tj	|dS tjdkrO|rGtj	|dS tj	|ddS tdtj )NrZ   libr[   zsite-packagesr   ZLibz?I don't know where Python installs its library on platform '%s')r\   r]   EXEC_PREFIXPREFIXr8   rG   rR   
platlibdirr`   ra   r   r   )re   Zstandard_librf   libdirZ	libpythonr"   r"   r#   get_python_lib5  s0   


rm   )N)r   N)r   r   N)5_impr8   r.   rR   warnings	functoolsr   r&   r   Z	sysconfigr   rj   r   r]   r   ri   r   r\   r	   r_   r
   r^   r   Zsysconfig_init_posixr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rT   rG   r   warnDeprecationWarningZ_python_buildZ_init_ntrL   rc   abiflagsAttributeErrorrW   rg   rm   r"   r"   r"   r#   <module>   sB    \




o
G(