3 M(Y@sFddljjZddlmZddlmZddlm Z GdddejZdS)N)DistutilsSetupError)log)newer_pairwise_groupc@seZdZdZddZdS) 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 Cs~xv|D]l\}}|jd}|dks4t|ttf r@td|t|}tjd||jdt}t|tsxtd|g}|jdt}t|ttfstd|xX|D]P}|g} | j||j|t} t| ttfstd|| j| |j | qW|j j ||j d} t || ggfkr^|jd} |jd } |jd }|j j||j | | ||jd }|j j| ||j|jd qWdS) Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' libraryobj_depsz\in 'libraries' option (library '%s'), 'obj_deps' must be a dictionary of type 'source: list') output_dirmacros include_dirscflags)r r r Zextra_postargsdebug)r r )get isinstancelisttuplerrinfodictextendappendcompilerZobject_filenames build_temprcompiler Zcreate_static_libr)self librariesZlib_nameZ build_inforrZ dependenciesZ global_depssourceZsrc_depsZ extra_depsZexpected_objectsr r r ZobjectsrK/private/tmp/pip-build-nl73fm5q/setuptools/setuptools/command/build_clib.pybuild_librariess`           zbuild_clib.build_librariesN)__name__ __module__ __qualname____doc__rrrrrrsr) Zdistutils.command.build_clibcommandrorigZdistutils.errorsr distutilsrZsetuptools.dep_utilrrrrrs