
    -Ph                        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
mZ d dlmZ d dlmZmZmZmZmZmZ d dlmZmZ dd	lmZmZmZ d
dlmZ ej        rddlmZ d
dl m!Z! d
dl"m#Z#  G d de          Z$ddZ%dS )    )annotationsN)mesonlib)CustomTargetCustomTargetIndexGeneratedListTarget)detect_compiler_for)ContainerTypeInfoFeatureDeprecated
FeatureNew	KwargInfotyped_pos_argstyped_kwargs)version_compareMachineChoice   )NewExtensionModuleModuleReturnValue
ModuleInfo   )NoneType)ModuleState)Compiler)Interpreterc                      e Zd Z edd          Zd fdZdd
Z edd           edd           e	de
ej        eeef           ed ed eee
          g dd           ede
efd                    d d                                                Z edd           e	de
ej        eeef           ed ed eee
          g dd           ede
efd                    d d                                    Zd dZ xZS )!
JavaModulejavaz0.60.0interpreterr   c                    t                                                       | j                            | j        | j        d           d S )N)generate_native_headersnative_headers)super__init__methodsupdater    r!   )selfr   	__class__s     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/modules/java.pyr#   zJavaModule.__init__   sS    '+'C"1
 
 	 	 	 	 	    stater   returnr   c                    d|j         j        j        t          j                 vr't          |j         dt          j        d|j                   |j         j        j        t          j                 d         S )Nr   F)environmentcoredata	compilersr   BUILDr	   
subproject)r&   r*   s     r(   __get_java_compilerzJavaModule.__get_java_compiler!   s[    *3=m>QRRR 16=;NPUW\Wghhh )3M4GHPPr)   zjava.generate_native_headersz0.62.0z1.0.0)varargsclassesT)defaultlistifyrequiredpackageN)r5   args&T.Tuple[T.List[mesonlib.FileOrString]]kwargsT.Dict[str, T.Optional[str]]r   c                0    |                      |||          S N_JavaModule__native_headersr&   r*   r9   r;   s       r(   r    z"JavaModule.generate_native_headers&   s     $$UD&999r)   zjava.native_headersc                0    |                      |||          S r>   r?   rA   s       r(   r!   zJavaModule.native_headers3   s     $$UD&999r)   c           
     :   t          j        d|                    d                    }|                    d          }|r*|                    dd                              dd          }g }|D ]N}|                    dd          }	|r|                    | d|	 d           6|                    |	 d           O|                     |          }
t          j        |
j        dd	d
|j	        dg          }|s|d         n|}t          | d|j	        |j        |j        ||d         ||j                  }t          |
j        d          rAt!          j        |j                            |                                        dd           t)          ||g          S )NzT.List[str]r4   r8   -_.z.hz-dz@PRIVATE_DIR@z-hz@INPUT@r   z-native-headers)sourcesoutputsbackendz1.8.0T)parentsexist_ok)Tcastgetreplaceappend_JavaModule__get_java_compilerr   r6   exelistsubdirr   r1   r-   rI   r   versionpathlibPathget_target_private_dir_absmkdirr   )r&   r*   r9   r;   r4   r8   sanitized_packageheadersclazzsanitized_clazzjavaccommandprefixtargets                 r(   __native_headerszJavaModule.__native_headers?   s   &

9(=(=>>**Y'' 	L 'S 9 9 A A#s K K! 	7 	7E#mmC55O 7"3IIoIIIJJJJ/5556666((//"ML$
   $+7888#l#.#/%&*1gwW W W 5='22 	nLAA&IIJJPPY]hlPmmm &222r)   )r   r   )r*   r   r+   r   )r*   r   r9   r:   r;   r<   r+   r   )__name__
__module____qualname__r   INFOr#   rQ   r   r   r   strr   Filer   r   r   r   r   r
   listr   r    r!   r@   __classcell__)r'   s   @r(   r   r      s       :fh''D     Q Q Q Q
 Z.995w??^&hmV->NP P P \&	)..tS992t^bccc	)c8_d;;;= =: : :	= =P P @? :9: Z%w//^hmV->NP P P \	)..tS992t^bccc	)c8_d;;;= =: : :	= =P P 0/:)3 )3 )3 )3 )3 )3 )3 )3r)   r   r9   T.Anyr;   r+   c                     t          | i |S r>   )r   )r9   r;   s     r(   
initializerl   j   s    t&v&&&r)   )r9   rj   r;   rj   r+   r   )&
__future__r   rU   typingrL   
mesonbuildr   mesonbuild.buildr   r   r   r   mesonbuild.compilersr	   %mesonbuild.interpreterbase.decoratorsr
   r   r   r   r   r   mesonbuild.mesonlibr   r    r   r   r   interpreter.type_checkingr   TYPE_CHECKINGr   r/   r   r   r   r   rl    r)   r(   <module>rx      s   # " " " " "            S S S S S S S S S S S S 4 4 4 4 4 4 L  L  L  L  L  L  L  L  L  L  L  L  L  L  L  L > > > > > > > > ? ? ? ? ? ? ? ? ? ? 0 0 0 0 0 0? *$$$$$$))))))R3 R3 R3 R3 R3# R3 R3 R3h' ' ' ' ' 'r)   