o
    Zh                     @   s\   d 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	 dd Z
G d	d
 d
eZdS )zBdistutils.command.build

Implements the Distutils 'build' command.    N   )Command)DistutilsOptionError)get_platformc                  C   s   ddl m}  |   d S )Nr   show_compilers)Z	ccompilerr   r    r   Z/var/www/html/lang_env/lib/python3.10/site-packages/setuptools/_distutils/command/build.pyr      s   
r   c                   @   s   e Zd ZdZdddddddd	d
e  dfdddddgZddgZdddefgZdd Z	dd Z
dd Zdd Zdd Zd d! Zd"d# Zd$efd%efd&efd'efgZdS )(buildz"build everything needed to install)zbuild-base=bz base directory for build library)zbuild-purelib=Nz2build directory for platform-neutral distributions)zbuild-platlib=Nz3build directory for platform-specific distributions)z
build-lib=NzWbuild directory for all distribution (defaults to either build-purelib or build-platlib)zbuild-scripts=Nzbuild directory for scripts)zbuild-temp=tztemporary build directoryz
plat-name=pz3platform name to build for, if supported [default: ])z	compiler=czspecify the compiler type)z	parallel=jznumber of parallel build jobs)debuggz;compile extensions and libraries with debugging information)forcefz2forcibly build everything (ignore file timestamps))zexecutable=ez5specify final destination interpreter path (build.py)r   r   zhelp-compilerNzlist available compilersc                 C   sL   d| _ d | _d | _d | _d | _d | _d | _d | _d | _d| _	d | _
d | _d S )Nr
   F)
build_basebuild_purelibbuild_platlib	build_lib
build_tempbuild_scriptscompiler	plat_namer   r   
executableparallelselfr   r   r	   initialize_options4   s   
zbuild.initialize_optionsc                 C   sl  | j d u r
t | _ n	tjdkrtdd| j  dtjj }t	dr'|d7 }t
tdr0|d7 }| jd u r>tj| jd	| _| jd u rNtj| jd	| | _| jd u ra| j r]| j| _n| j| _| jd u rqtj| jd
| | _| jd u rtj| jdtjj dtjj | _| jd u rtjrtjtj| _t| jtrz	t| j| _W d S  ty   tdw d S )NntzW--plat-name only supported on Windows (try using './configure --help' on your platform).-Py_GIL_DISABLEDr   gettotalrefcountz-pydebuglibtempzscripts-zparallel should be an integer)r   r   osnamer   sysimplementation	cache_tag	sysconfigget_config_varhasattrr   pathjoinr   r   r   distributionhas_ext_modulesr   r   version_infomajorminorr   normpath
isinstancer   strint
ValueError)r!   Zplat_specifierr   r   r	   finalize_optionsD   sF   











zbuild.finalize_optionsc                 C   s   |   D ]}| | qd S N)Zget_sub_commandsrun_command)r!   cmd_namer   r   r	   run   s   z	build.runc                 C   
   | j  S r?   )r4   has_pure_modulesr    r   r   r	   rD         
zbuild.has_pure_modulesc                 C   rC   r?   )r4   has_c_librariesr    r   r   r	   rF      rE   zbuild.has_c_librariesc                 C   rC   r?   )r4   r5   r    r   r   r	   r5      rE   zbuild.has_ext_modulesc                 C   rC   r?   )r4   has_scriptsr    r   r   r	   rG      rE   zbuild.has_scriptsZbuild_pyZ
build_clibZ	build_extr   )__name__
__module____qualname__descriptionr   Zuser_optionsZboolean_optionsr   Zhelp_optionsr"   r>   rB   rD   rF   r5   rG   Zsub_commandsr   r   r   r	   r
      sB    
=r
   )__doc__r*   r,   r/   corer   errorsr   utilr   r   r
   r   r   r   r	   <module>   s    