
    wg                     p    d dl mZ d dlmZ ddlmc mZ ddlm	Z	 ddl
mZ  G d dej                        Zy)	   )Distribution)newer_pairwise_group    N)log)DistutilsSetupErrorc                   $    e Zd ZU dZeed<   d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.
    distributionNc           	      j   |D ]-  \  }}|j                  d      }|t        |t        t        f      st	        d|z        t        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                          0 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   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   s                  b/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/setuptools/command/build_clib.pybuild_librarieszbuild_clib.build_libraries   s*   $- K	 Hj nnY/Gj4-&H)13;< 
 T']+GHH,h7
 "~~j$&9Hh-)*,45 
 L #,,r462KkD%=9)*,45  " ."8,%\\&$&9
!*tUm<-.089 
 
+##H-.  $}}==??  >  
 $L2BCBxO $1)~~n=#1%%#!!-#)** &  MM++ (tdjj , SK	    )returnN)__name__
__module____qualname____doc__r   __annotations__r.    r/   r-   r	   r	   	   s     Lr/   r	   )distr   modifiedr   distutils.command.build_clibcommandr	   orig	distutilsr   distutils.errorsr   r6   r/   r-   <module>r>      s)     + + +  0^ ^r/   