a
    6Rh                     @   sX   d dl mZ d dlmZ ddlm  mZ ddlm	Z	 ddl
mZ G dd dejZdS )	   )Distribution)newer_pairwise_group    N)log)DistutilsSetupErrorc                   @   s(   e Zd ZU dZeed< ddddZdS )
build_clibav  
    Override the default build_clib behaviour to do the following:

    1. Implement a rudimentary timestamp-based dependency system
       so 'compile()' doesn't run every time.
    2. Add more keys to the 'build_info' dictionary:
        * obj_deps - specify dependencies for each object compiled.
                     this should be a dictionary mapping a key
                     with the source filename to a list of
                     dependencies. Use an empty string for global
                     dependencies.
        * cflags   - specify a list of additional flags to pass to
                     the compiler.
    distributionN)returnc              	   C   s  |D ]z\}}| d}|d u s.t|ttfs>td| dtt|}td| | dt }t|ts~td| dg }| dt }t|ttfstd| d|D ]T}|g}	|		| | |t }
t|
ttfstd| d|		|
 |
|	 q| jj|| jd}t||g g fkrh| d	}| d
}| d}| jj|| j|||| jd | jj||| j| jd qd S )Nsourcesz in 'libraries' option (library 'zD'), 'sources' must be present and must be a list of source filenameszbuilding '%s' libraryobj_depsz:'), 'obj_deps' must be a dictionary of type 'source: list' )
output_dirmacrosinclude_dirscflags)r   r   r   Zextra_postargsdebug)r   r   )get
isinstancelisttupler   sortedr   infodictextendappendcompilerZobject_filenames
build_tempr   compiler   Zcreate_static_libr   )self	librariesZlib_nameZ
build_infor
   r   dependenciesZglobal_depssourceZsrc_depsZ
extra_depsZexpected_objectsr   r   r    r"   S/opt/python-3.9.24/usr/lib/python3.9/site-packages/setuptools/command/build_clib.pybuild_libraries   s`    










zbuild_clib.build_libraries)__name__
__module____qualname____doc__r   __annotations__r$   r"   r"   r"   r#   r   	   s   
r   )distr   modifiedr   Zdistutils.command.build_clibcommandr   orig	distutilsr   distutils.errorsr   r"   r"   r"   r#   <module>   s
   