U
âQab„ ã @ sL d dl m mZ d dlmZ d dlmZ d dlm Z G dd„ dejƒZdS )é N)ÚDistutilsSetupError)Úlog)Únewer_pairwise_groupc @ s e Zd ZdZdd„ ZdS )Ú
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 �]f\}}| d¡}|d ks.t|ttfƒs:td| ƒ‚t|ƒ}t d|¡ | dtƒ ¡}t|tƒsrtd| ƒ‚g }| dtƒ ¡}t|ttfƒsžtd| ƒ‚|D ]P}|g} | |¡ | |tƒ ¡}
t|
ttfƒsÞtd| ƒ‚| |
¡ | | ¡ q¢| j
j|| jd�}t
||ƒg g fk�rT| d¡}| d ¡}
| d
¡}| j
j|| j||
|| jd�}| j
j||| j| jd� qd S )
NÚsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%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 Zextra_postargsÚdebug)r r
)ÚgetÚ
isinstanceÚlistÚtupler r ÚinfoÚdictÚextendÚappendZcompilerZobject_filenamesZ
build_tempr Úcompiler
Zcreate_static_libr )ÚselfZ librariesZlib_nameZ
build_infor r ZdependenciesZglobal_depsÚsourceZsrc_depsZ
extra_depsZexpected_objectsr
r r Zobjects© r úA/usr/lib/python3.8/site-packages/setuptools/command/build_clib.pyÚbuild_libraries sv
þÿ
þÿþÿ
þÿ
þ
úüzbuild_clib.build_librariesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r r r r r s r )
Zdistutils.command.build_clibZcommandr ZorigZdistutils.errorsr Z distutilsr Zsetuptools.dep_utilr r r r r Ú