o
    Ëý°j?  ã                   @   sL   d dl m  mZ d dlmZ d dlmZ d dlm	Z	 G dd„ dejƒZdS )é    N)ÚDistutilsSetupError)Úlog)Únewer_pairwise_groupc                   @   s   e Zd ZdZ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.
    c              	   C   sn  |D ]²\}}|  d¡}|d u st|ttfƒstd| ƒ‚t|ƒ}t d|¡ |  dtƒ ¡}t|tƒs8td| ƒ‚g }|  dtƒ ¡}t|ttfƒsNtd| ƒ‚|D ](}|g}	|	 |¡ |  |tƒ ¡}
t|
ttfƒsntd| ƒ‚|	 |
¡ | 	|	¡ qP| j
j|| jd�}t||ƒg g fkr¨|  d¡}|  d	¡}|  d
¡}| j
j|| j|||| jd� | j
j||| j| jd� qd S )NÚsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' libraryÚobj_depsz\in 'libraries' option (library '%s'), 'obj_deps' must be a dictionary of type 'source: list'Ú )Ú
output_dirÚmacrosÚinclude_dirsÚcflags)r	   r
   r   Úextra_postargsÚdebug)r	   r   )ÚgetÚ
isinstanceÚlistÚtupler   r   ÚinfoÚdictÚextendÚappendÚcompilerÚobject_filenamesÚ
build_tempr   Úcompiler   Úcreate_static_libr   )ÚselfÚ	librariesÚlib_nameÚ
build_infor   r   ÚdependenciesÚglobal_depsÚsourceÚsrc_depsÚ
extra_depsÚexpected_objectsr
   r   r   © r&   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/setuptools/command/build_clib.pyÚbuild_libraries   s|   
þÿ
þÿþÿ
þÿ
þÿ


úü¸zbuild_clib.build_librariesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r(   r&   r&   r&   r'   r      s    r   )
Údistutils.command.build_clibÚcommandr   ÚorigÚdistutils.errorsr   Ú	distutilsr   Úsetuptools.dep_utilr   r&   r&   r&   r'   Ú<module>   s
    