o
    Ee                     @   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
y,   ddlm	Z	 Y nw 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   sr  |D ]\}}| d}|d u st|ttfstd| tt|}td| | dt }t|ts:td| g }| dt }t|ttfsPtd| |D ](}|g}	|		| | |t }
t|
ttfsptd| |		|
 |
|	 qR| 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   sortedr   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(   ^/var/www/bmteknikk.ddns.net/venv/lib/python3.10/site-packages/setuptools/command/build_clib.pybuild_libraries   sr   






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   distutils._modifiedr   ImportError_distutils._modifiedr(   r(   r(   r)   <module>   s    