Current File : //lib/python3.9/site-packages/setuptools/_distutils/__pycache__/spawn.cpython-39.pyc
a

��kh8�@sndZddlZddlZddlZddlmZmZddlmZddl	m
Z
ejdkrVdada
ddd	�Zd
d
d�ZdS)z�distutils.spawn

Provides the 'spawn()' function, a front-end to various platform-
specific functions for launching another program in a sub-process.
Also provides the 'find_executable()' to search the path for a given
executable name.
�N)�DistutilsPlatformError�DistutilsExecError)�DEBUG)�log�darwin�c
Cszt|�}t�d�|��|r dS|r@t|d�}|dur@||d<|durL|nttj�}tj	dkr�t
dur�ddlm}|�
d�p�da
t
r�dd	�t
�d
�D�at
r�tj�dt
�}tdd	�|�d
�D�kr�d|t
f}t|��|j|d
�z tj||d�}	|	��|	j}
WnLt�yP}z2t�s$|d}td||jdf�|�WYd}~n
d}~00|
�rvt�sf|d}td||
f��dS)a�Run another program, specified as a command list 'cmd', in a new process.

    'cmd' is just the argument list for the new process, ie.
    cmd[0] is the program to run and cmd[1:] are the rest of its arguments.
    There is no way to run a program with a name different from that of its
    executable.

    If 'search_path' is true (the default), the system's executable
    search path will be used to find the program; otherwise, cmd[0]
    must be the exact path to the executable.  If 'dry_run' is true,
    the command will not actually be run.

    Raise DistutilsExecError if running the program fails in any way; just
    return on success.
    � Nrr)�	sysconfig�MACOSX_DEPLOYMENT_TARGET�cSsg|]}t|��qS���int��.0�xrr�?/usr/lib/python3.9/site-packages/setuptools/_distutils/spawn.py�
<listcomp>=�zspawn.<locals>.<listcomp>�.cSsg|]}t|��qSrr
rrrrrCrzF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r
)�envzcommand %r failed: %s���z#command %r failed with exit code %s)�listr�info�join�find_executable�dict�os�environ�sys�platform�_cfg_target�	distutilsr	Zget_config_var�split�_cfg_target_split�getr�update�
subprocess�Popen�wait�
returncode�OSErrorrr�args)�cmd�search_path�verbose�dry_runr�
executabler	Z
cur_targetZmy_msg�procZexitcode�excrrr�spawnsZ
���
��
�r4c	Cs�tj�|�\}}tjdkr*|dkr*|d}tj�|�r:|S|dur�tj�dd�}|dur�zt�d�}Wnt	t
fy�tj}Yn0|s�dS|�tj
�}|D]&}tj�||�}tj�|�r�|Sq�dS)z�Tries to find 'executable' in the directories listed in 'path'.

    A string listing directories separated by 'os.pathsep'; defaults to
    os.environ['PATH'].  Returns the complete filename or None if not found.
    �win32z.exeN�PATH�CS_PATH)r�path�splitextrr �isfilerr%�confstr�AttributeError�
ValueError�defpathr#�pathsepr)r1r8�_�ext�paths�p�frrrr(
r)rrrN)N)�__doc__rrr'Zdistutils.errorsrrZdistutils.debugrr"rr r!r$r4rrrrr�<module>s

D