a
    ñ»j»  ã                   @   sp   d dl m  mZ d dlmZ d dlmZ zd dlm	Z	 W n e
yX   ddlm	Z	 Y n0 G dd„ dejƒZdS )é    N)ÚDistutilsSetupError)Úlog)Únewer_pairwise_groupé   c                   @   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   sv  |D �]j\}}|  d¡}|d u s.t|ttfƒs:td| ƒ‚tt|ƒƒ}t d|¡ |  dtƒ ¡}t|tƒsvtd| ƒ‚g }|  dtƒ ¡}t|ttfƒs¢td| ƒ‚|D ]P}|g}	|	 	|¡ |  |tƒ ¡}
t|
ttfƒsâtd| ƒ‚|	 	|
¡ | 
|	¡ q¦| jj|| jd�}t||ƒg g fk�rX|  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   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   úCE:\soccer\ml_env\Lib\site-packages\setuptools/command/build_clib.pyÚbuild_libraries   sp    
þÿ
þÿþÿ
þÿ
þ


úÿzbuild_clib.build_librariesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r   r   r   r    r      s   r   )Zdistutils.command.build_clibÚcommandr   ÚorigÚdistutils.errorsr   Ú	distutilsr   Zdistutils._modifiedr   ÚImportErrorZ_distutils._modifiedr   r   r   r    Ú<module>   s   