
    e1                    0   d dl mZ d dlZd dlZddlmZ ddlmZmZm	Z	 ddl
mZmZmZmZmZmZmZmZ ddlmZ dd	lmZmZmZmZmZ dd
lmZ ej:                  rddlmZ ddl mZ! eD  cg c]  } | jD                  dvs|  c} Z# G d de      Z$d Z%yc c} w )    )annotationsN   )mesonlib   )ExtensionModule
ModuleInfoModuleState)BuildTargetCustomTargetCustomTargetIndexExtractedObjectsGeneratedListSharedModuleStructuredSourcesknown_shmod_kwargs)SHARED_MOD_KWS)typed_kwargstyped_pos_args	noPosargsnoKwargspermittedKwargs)ExternalProgram)BuildTargetSource)r   >   name_prefixname_suffixc                      e Zd Z eddd      Z fdZ eeddhz
         ede	e	e
j                  eeeeeef	       edged
didd                     Zeed               Zeed               Ze ede	      d               Z xZS )Python3Modulepython3z0.38.0z0.48.0)
deprecatedc                    t        |   |i | | j                  j                  | j                  | j
                  | j                  | j                  d       y )N)extension_modulefind_pythonlanguage_versionsysconfig_path)super__init__methodsupdater!   r"   r#   r$   )selfargskwargs	__class__s      </usr/lib/python3/dist-packages/mesonbuild/modules/python3.pyr&   zPython3Module.__init__)   sP    $)&) $ 5 5++ $ 5 5"11	
 	    r   r   zpython3.extension_module)varargsallow_unknownTc                    |j                   j                  }|dk(  rd}n
|dk(  rd}ng }d|d<   ||d<   | j                  j                  |j                  ||t
              S )Ndarwinsowindowspyd r   r   )host_machinesysteminterpreterbuild_targetcurrent_noder   )r)   stater*   r+   host_systemsuffixs         r-   r!   zPython3Module.extension_module2   sk     ((//("FI%FF "} &},,U-?-?v|\\r.   c                    |j                   j                  t        j                  j                  d      }|t        j                  d|      }|S t        dt        j                  d      }|S )Nr   T)silent)environmentlookup_binary_entryr   MachineChoiceHOSTr   
from_entrypython_command)r)   r<   r*   r+   commandpy3s         r-   r"   zPython3Module.find_pythonC   sc     ##778N8N8S8SU^_!,,Y@C 
 ")X-D-DTRC
r.   c                *    t        j                         S N)	sysconfigget_python_version)r)   r<   r*   r+   s       r-   r#   zPython3Module.language_versionM   s     ++--r.   zpython3.sysconfig_pathc                    |d   }t        j                         }||vrt        j                  | d| d      t        j                  |dddd      dd  S )Nr   z is not a valid path name .r6   )baseplatbaseinstalled_base)varsr   )rK   get_path_namesr   MesonExceptionget_path)r)   r<   r*   r+   	path_namevalid_namess         r-   r$   zPython3Module.sysconfig_pathR   sk     G	..0K'))YK7QR]Q^^_*`aa !!)22ac2defgfhiir.   )r<   r	   r*   z'T.Tuple[str, T.List[BuildTargetSource]]r+   SharedModuleKW)__name__
__module____qualname__r   INFOr&   r   r   r   strr   Filer   r   r   r   r   r
   r   _MOD_KWARGSr!   r   r   r"   r#   r$   __classcell__)r,   s   @r-   r   r   %   s    ih?D '=-*HHI.c8==R^`q  tA  CT  Vf  hs  >t  u,O{O$O] P u J]    .  . ,c2j 3 jr.   r   c                     t        | i |S rJ   )r   )r*   r+   s     r-   
initializerb   ^   s    $)&))r.   )&
__future__r   rK   typingTr6   r   r   r   r	   buildr
   r   r   r   r   r   r   r   interpreter.type_checkingr   interpreterbaser   r   r   r   r   programsr   TYPE_CHECKINGinterpreter.interpreterr   interpreter.kwargsrX   namer_   r   rb   )ks   0r-   <module>ro      s|    #    6 6   7 ` ` &??;C )YQAFF:X,XqY6jO 6jr*y Zs   )B=B