CasperSecurity

Current Path : /lib/python3.10/distutils/command/__pycache__/
Upload File :
Current File : //lib/python3.10/distutils/command/__pycache__/build_clib.cpython-310.pyc

o

��bcV�@sTdZddlZddlmZddlTddlmZddlmZdd�Z	Gd	d
�d
e�Z
dS)z�distutils.command.build_clib

Implements the Distutils 'build_clib' command, to build a C/C++ library
that is included in the module distribution and needed by an extension
module.�N)�Command)�*)�customize_compiler)�logcCsddlm}|�dS)Nr��show_compilers)�distutils.ccompilerrr�r	�3/usr/lib/python3.10/distutils/command/build_clib.pyrs
rc@sfeZdZdZgd�ZddgZdddefgZdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�ZdS)�
build_clibz/build C/C++ libraries used by Python extensions))zbuild-clib=�bz%directory to build C/C++ libraries to)zbuild-temp=�tz,directory to put temporary build by-products)�debug�gz"compile with debugging information)�force�fz2forcibly build everything (ignore file timestamps))z	compiler=�czspecify the compiler typerrz
help-compilerNzlist available compilerscCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr)	r�
build_temp�	libraries�include_dirs�define�undefrr�compiler��selfr	r	r
�initialize_options4s
zbuild_clib.initialize_optionscCsl|�dddddd�|jj|_|jr|�|j�|jdur$|jjp"g|_t|jt�r4|j�tj	�|_dSdS)N�build)rr)rr)rr)rr)rr)
�set_undefined_options�distributionr�check_library_listr�
isinstance�str�split�os�pathseprr	r	r
�finalize_optionsDs�

�zbuild_clib.finalize_optionscCs�|jsdSddlm}||j|j|jd�|_t|j�|jdur'|j�|j�|j	dur;|j	D]\}}|j�
||�q/|jdurL|jD]}|j�|�qC|�
|j�dS)Nr)�new_compiler)r�dry_runr)rrr&rr'rrr�set_include_dirsr�define_macror�undefine_macro�build_libraries)rr&�name�value�macror	r	r
�run^s"�




zbuild_clib.runcCs�t|t�s	td��|D]=}t|t�st|�dkrtd��|\}}t|t�s)td��d|vs7tjdkr?tj|vr?td|d��t|t�sHtd��qd	S)
a`Ensure that the list of libraries is valid.

        `library` is presumably provided as a command option 'libraries'.
        This method checks that it is a list of 2-tuples, where the tuples
        are (library_name, build_info_dict).

        Raise DistutilsSetupError if the structure is invalid anywhere;
        just returns otherwise.
        z+'libraries' option must be a list of tuples�z*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)�/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N)	r �list�DistutilsSetupError�tuple�lenr!r#�sep�dict)rr�libr,�
build_infor	r	r
rvs0

��
��
���zbuild_clib.check_library_listcCs,|jsdSg}|jD]	\}}|�|�q
|S)N)r�append)r�	lib_names�lib_namer9r	r	r
�get_library_names�szbuild_clib.get_library_namescCsZ|�|j�g}|jD]\}}|�d�}|dust|ttf�s%td|��|�|�q|S)N�sources�fin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)rr�getr r2r4r3�extend)r�	filenamesr<r9r>r	r	r
�get_source_files�s
��zbuild_clib.get_source_filescCs�|D]G\}}|�d�}|dust|ttf�std|��t|�}t�d|�|�d�}|�d�}|jj||j	|||j
d�}|jj|||j|j
d�qdS)Nr>r?zbuilding '%s' library�macrosr)�
output_dirrDrr)rEr)
r@r r2r4r3r�infor�compilerr�create_static_libr)rrr<r9r>rDr�objectsr	r	r
r+�s.
��

�
	��zbuild_clib.build_libraries)�__name__�
__module__�__qualname__�description�user_options�boolean_optionsr�help_optionsrr%r/rr=rCr+r	r	r	r
rs
��$r)�__doc__r#�distutils.corer�distutils.errors�distutils.sysconfigr�	distutilsrrrr	r	r	r
�<module>s
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY