
    j                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
Z
 ee
j        d                    Z G d de          Z G d de	          ZdS )	    N)Path)	Extension)	build_extc                   .     e Zd Zddededdf fdZ xZS )CMakeExtension name	sourcedirreturnNc                     t                                          |g            t          j        t	          |                                                    | _        d S )N)sources)super__init__osfspathr   resolver
   )selfr	   r
   	__class__s      W/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/mlx/extension.pyr   zCMakeExtension.__init__   sG    r***4	??#:#:#<#<==    )r   )__name__
__module____qualname__strr   __classcell__r   s   @r   r   r      sW        > >S >S >$ > > > > > > > > > >r   r   c                   0     e Zd ZdeddfdZd fdZ xZS )
CMakeBuildextr   Nc                 D   t          j                    |                     |j                  z  }|j                                        }| j        -t          t          j	        
                    dd                    n| j        }|rdnd}d| t          j         d| dg}g }dt          j	        v r2|d	 t          j	        d                             d
          D             z  }t          j                            d          rat!          j        dt          j	        
                    dd                    }|r,|d                    d                    |                    gz  }dt          j	        vr|dt          j                     gz  }t          | j                  |j        z  }	|	                                s|	                    d           t0          t          j	        d<   t3          j        d|j        g||	d           t3          j        dddg||	d           d S )NDEBUGr   DebugReleasez!-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=z-DCMAKE_BUILD_TYPE=z-DBUILD_SHARED_LIBS=ON
CMAKE_ARGSc                     g | ]}||S  r&   ).0items     r   
<listcomp>z.CMakeBuild.build_extension.<locals>.<listcomp>-   s    XXXDSWX4XXXr    darwinz-arch (\S+)	ARCHFLAGSr   z-DCMAKE_OSX_ARCHITECTURES={};CMAKE_BUILD_PARALLEL_LEVELz-jT)parentsMLX_DIRcmake)cwdcheckz--build.)r   r2   get_ext_fullpathr	   parentr   debugintr   environgetsepsplitsysplatform
startswithrefindallformatjoin	cpu_count
build_tempexistsmkdir	_MLX_PATH
subprocessrunr
   )
r   r   ext_fullpathextdirr7   cfg
cmake_args
build_argsarchsrE   s
             r   build_extensionzCMakeBuild.build_extension   s$   xzzD$9$9#($C$CC$,,..37:3EBJNN7A..///4:-ggI A@@@'#''$


 
 2:%%XXBJ|,D,J,J3,O,OXXXXJ<""8,, 	WJ~rz~~k2/N/NOOE W=DDSXXe__UUVV
 (rz9900011J$/**SX5
  "" 	+T*** !*
9cm1j1z	
 	
 	
 	
 	i2z2
$	
 	
 	
 	
 	
 	
r   c                    t                                                       | j        r| j        D ]}t	          |t
                    r|                     d          }|                     ||          \  }}t          t          |          j
                                                  }t          t          |          j
                                                  }|                     ||           d S d S )Nbuild_py)r   rJ   inplace
extensions
isinstancer   get_finalized_command_get_inplace_equivalentr   r   r6   r   	copy_tree)r   r   rS   inplace_fileregular_fileinplace_dirregular_dirr   s          r   rJ   zCMakeBuild.runH   s     < 	= = =c>22 
=#99*EEH151M1M #2 2.L, #&d<&8&8&?&G&G&I&I"J"JK"%d<&8&8&?&G&G&I&I"J"JKNN;<<<	= 	== =r   )r   N)r   r   r   r   rQ   rJ   r   r   s   @r   r   r      s`        -
> -
d -
 -
 -
 -
^= = = = = = = = = =r   r   )r   r@   rI   r=   pathlibr   
setuptoolsr   setuptools.command.build_extr   mlxr   __path__rH   r   r   r&   r   r   <module>rc      s    
			 				     



                   2 2 2 2 2 2 



CQ  	> > > > >Y > > >@= @= @= @= @= @= @= @= @= @=r   