3
;p_?                 @   sF   d dl jj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   s~  xv|D ]l\}}|j d}|d ks4t|ttf r@td| t|}tjd| |j dt }t|tsxtd| g }|j dt }t|ttfstd| xX|D ]P}|g}	|	j| |j |t }
t|
ttfstd| |	j|
 |j	|	 qW | j
j|| jd}t||g g fkr^|j d}|j d	}|j d
}| j
j|| j|||| jd | j
j||| j| jd qW 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   r   infodictextendappendcompilerZobject_filenames
build_tempr   compiler   Zcreate_static_libr   )self	librariesZlib_nameZ
build_infor   r   ZdependenciesZglobal_depssourceZsrc_depsZ
extra_depsZexpected_objectsr
   r   r    r   E/tmp/pip-install-ofl94hr3/setuptools/setuptools/command/build_clib.pybuild_libraries   sb    









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setuptools.dep_utilr   r   r   r   r   <module>   s   