
    df?                     d    d dl mc mZ d dlmZ d dlmZ d dlm	Z	  G d dej                        Zy)    N)DistutilsSetupError)log)newer_pairwise_groupc                       e Zd ZdZd Zy)
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           	      X   |D ]$  \  }}|j                  d      }|t        |t        t        f      st	        d|z        t        |      }t        j                  d|       |j                  dt                     }t        |t              st	        d|z        g }|j                  dt                     }t        |t        t        f      st	        d|z        |D ]v  }|g}	|	j                  |       |j                  |t                     }
t        |
t        t        f      st	        d|z        |	j                  |
       |j                  |	       x | j                  j                  || j                        }t        ||      g g fk7  rh|j                  d      }|j                  d	      }|j                  d
      }| j                  j                  || j                  |||| j                         | j                  j!                  ||| j"                  | j                         ' y )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   r   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   s                  V/home/api-vastappli/venv/lib/python3.12/site-packages/setuptools/command/build_clib.pybuild_librarieszbuild_clib.build_libraries   s+   &/ M	"Xz nnY/Gj4-&H)13;<= = 7mGHH,h7
 "~~j$&9Hh-)*,456 6 L #,,r462KkD%=9)*,456 6 " 
."8,%\\&$&9
!*tUm<-.089: : 
+##H-
.  $}}==??  >   %\3CD8 $1)~~n=#1%%#!!-#)** &  MM++ ??jj	 , QM	    N)__name__
__module____qualname____doc__r*    r+   r)   r   r      s    Nr+   r   )
distutils.command.build_clibcommandr   origdistutils.errorsr   	distutilsr   setuptools.dep_utilr   r0   r+   r)   <module>r7      s&    + + 0  4^ ^r+   