o _a?@sLddlmmZddlmZddlmZddlm 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 Csn|D]\}}|d}|dust|ttfstd|t|}td||dt}t|ts8td|g}|dt}t|ttfsNtd||D](}|g} | |||t} t| ttfsntd|| | | | qP|j j ||j d} t || ggfkr|d} |d } |d }|j j||j | | ||jd |j j| ||j|jd qdS) 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 extra_postargsdebug)r r)get isinstancelisttuplerrinfodictextendappendcompilerobject_filenames build_temprcompilercreate_static_libr)self librarieslib_name build_inforr dependencies global_depssourcesrc_deps extra_depsexpected_objectsr r r r&?/usr/lib/python3/dist-packages/setuptools/command/build_clib.pybuild_librariess|           zbuild_clib.build_librariesN)__name__ __module__ __qualname____doc__r(r&r&r&r'rs r) distutils.command.build_clibcommandrorigdistutils.errorsr distutilsrsetuptools.dep_utilrr&r&r&r's