
    -PhZ3                       d dl mZ ddlmZ ddlmZ ddlmZ d dlm	Z	 d dl
Zej        rddlmZ dd	lmZ d
dddddddddd
Zdddddddddd	Zg dZdBd$Z G d% d&e          Z G d' d(          ZdCd,ZdDd-ZdEdFd1ZdGd3Z G d4 d5          Z G d6 d7          Z G d8 d9          Z G d: d;          Z G d< d=          Z G d> d?          Z  G d@ dA          Z!dS )H    )annotations   )MesonException)	OptionKey)mlogPathN)Environment)TYPE_varCCXXCUDAOBJCOBJCXXASM_NASMCSharpJavaFortranSwift)
ccppcudaobjcobjcppnasmcsjavafortranswiftNinjaXcodezVisual Studio 10 2010zVisual Studio 11 2012zVisual Studio 12 2013zVisual Studio 14 2015zVisual Studio 15 2017zVisual Studio 16 2019zVisual Studio 17 2022)	ninjaxcodevs2010vs2012vs2013vs2015vs2017vs2019vs2022)CMAKE_TOOLCHAIN_FILECMAKE_PROJECT_INCLUDEMESON_PRELOAD_FILE!MESON_PS_CMAKE_CURRENT_BINARY_DIR!MESON_PS_CMAKE_CURRENT_SOURCE_DIRMESON_PS_DELAYED_CALLSMESON_PS_LOADEDMESON_FIND_ROOT_PATHMESON_CMAKE_SYSROOTMESON_PATHS_LISTMESON_CMAKE_ROOTenv'Environment'returnboolc                   d| j         j        v rH| j         j                            d          dk    }| j         j                            d          dv rd}|S | j         j                            d          }t          |t                    sJ |S )Nb_vscrt	buildtypedebug>   mddmtdT)coredataoptstoreget_value_for
isinstancer9   )r6   is_debug	debug_opts      W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/cmake/common.pycmake_is_debugrG   7   s    CL)))<(66{CCwN< ..y99^KKH L)77@@	)T*****    c                      e Zd ZdS )CMakeExceptionN)__name__
__module____qualname__ rH   rF   rJ   rJ   C   s        DrH   rJ   c                      e Zd ZddZdd
ZdS )CMakeBuildFilefiler	   is_cmaker9   is_tempr8   Nonec                0    || _         || _        || _        d S N)rQ   rR   rS   )selfrQ   rR   rS   s       rF   __init__zCMakeBuildFile.__init__G   s    	 rH   strc           	     R    d| j         j         d| j         d| j         d| j         d	S )N<z: z; cmake=z; temp=>)	__class__rK   rQ   rR   rS   rW   s    rF   __repr__zCMakeBuildFile.__repr__L   s8    f4>*ffdiffffW[WcffffrH   N)rQ   r	   rR   r9   rS   r9   r8   rT   r8   rY   rK   rL   rM   rX   r_   rN   rH   rF   rP   rP   F   sB           
g g g g g grH   rP   rawrY   T.List[str]c                    g }d}d}d}| D ]@}|r|dvr|dz  }||z  }d}|dk    rd}|dv r| }&|dv r|r||z  }2||gz  }d};||z  }A||gz  }d |D             }|S )	N F)"'\T>   rf   rg   >   
 c                8    g | ]}t          |          d k    |S )r   )len).0rs     rF   
<listcomp>z"_flags_to_list.<locals>.<listcomp>i   s#    
(
(
(SVVaZZ1ZZZrH   rN   )rb   rescurrescape	in_stringis         rF   _flags_to_listru   O   s    
CDFI   	
""AIDFF$YYFF*__%II+ 	vAIDDD6MC
(
(c
(
(
(CJrH   c                    | j         j                            t          d                    }t	          |t
                    sJ |t          v sJ dt          |         gS )Nbackendz-G)r@   rA   rB   r   rC   rY   backend_generator_map)r6   backend_names     rF   cmake_get_generator_argsrz   l   s[    <(66y7K7KLLLlC(((((00000'566rH   FT.List[T.Dict[str, TYPE_var]]
permissivec           	        g }| D ]}|                                 D ]\  }}|t          v rQt          j        dt          j        |          d           t          j        d           t          j        d           _t          |t          t          t          f          r|d| d| gz  }t          |t                    r|rdnd}|d| d| gz  }t          d	                    t          |          j        |                    |S )
NSettingCis not supported. See the meson docs for cross compilation support:C  - URL: https://mesonbuild.com/CMake-module.html#cross-compilation  --> Ignoring this option-D=ONOFFz>Type "{}" of "{}" is not supported as for a CMake define value)itemsblacklist_cmake_defsr   warningboldrC   rY   intfloatr9   r   formattyperK   )rb   r|   rp   rt   keyvalval_strs          rF   cmake_defines_to_argsr   r   sK   C G G		 	G 	GHC***Y	#8}~~~bccc9:::#S%011 G(S((3(())C&& G"%0$$5,S,,7,,--$%e%l%lmqrumvmvm  BE  &F  &F  G  G  G	G JrH   argsc                $   g }d t           D             }|sJ | D ]tt          fd|D                       rQt          j        dt          j                  d           t          j        d           t          j        d           n|gz  }u|S )Nc                    g | ]}d |z   S )r   rN   rm   xs     rF   ro   z$check_cmake_args.<locals>.<listcomp>   s    
2
2
24!8
2
2
2rH   c              3  B   K   | ]}                     |          V  d S rV   )
startswith)rm   r   rt   s     rF   	<genexpr>z#check_cmake_args.<locals>.<genexpr>   s-      ,,1q||A,,,,,,rH   r~   r   r   r   )r   anyr   r   r   )r   rp   disrt   s      @rF   check_cmake_argsr      s    C
2
21
2
2
2CJJJ  ,,,,,,,,, 	LDIaLL2wxxxL^___L5666s
JrH   c                       e Zd ZdddZdd	Zd
S )CMakeIncludeFpathr	   isSystemr9   c                "    || _         || _        d S rV   r   r   )rW   r   r   s      rF   rX   zCMakeInclude.__init__   s    	 rH   r8   rY   c                (    d| j          d| j         dS )Nz<CMakeInclude: z -- isSystem = r\   r   r^   s    rF   r_   zCMakeInclude.__repr__   s    KKK4=KKKKrH   NF)r   r	   r   r9   r`   ra   rN   rH   rF   r   r      sG        ! ! ! ! !L L L L L LrH   r   c                      e Zd ZddZd	dZdS )
CMakeFileGroupdataT.Dict[str, T.Any]r8   rT   c           	     .   |                     dd          | _        t          |                     dd                    | _        |                     dd          | _        |                     dd          | _        d |                     d	g           D             | _        g | _        |                     d
g           D ]}t          |t                    rd|v r}|                     dd          }t          |t                    sJ t          |d         t                    sJ | xj        t          t          |d                   |          gz  c_        t          |t                    r+| xj        t          t          |                    gz  c_        d S )Ndefinesre   compileFlagsisGeneratedFlanguager   c                ,    g | ]}t          |          S rN   r   r   s     rF   ro   z+CMakeFileGroup.__init__.<locals>.<listcomp>   s    AAAAQAAArH   sourcesincludePathr   r   )getr   ru   flagsis_generatedr   r   includesrC   dictr9   rY   r   r	   )rW   r   rt   r   s       rF   rX   zCMakeFileGroup.__init__   sl    HHY33#DHH^R$@$@AA
"&((=%"@"@!XXj#66AA)R)@)@AAA /1-,, 	9 	9A!T"" 9v{{55U33!(D11111!!F)S11111,tAfI"I"I!JJAs## 9,tAww"7"7!88	9 	9rH   c           	     *   t          j        dt          j        d                    | j                                       t          j        dt          j        d                    | j                                       t          j        dt          j        d                    d | j        D                                            t          j        dt          j        | j        rdnd                     t          j        d	t          j        | j                             t          j        d
           | j	        D ]S}t          j
                    5  t          j        |                                           d d d            n# 1 swxY w Y   Td S )Nzflags        =, zdefines      =zincludes     =c                ,    g | ]}t          |          S rN   )rY   r   s     rF   ro   z&CMakeFileGroup.log.<locals>.<listcomp>   s    7V7V7V1A7V7V7VrH   zis_generated =truefalsezlanguage     =zsources:)r   logr   joinr   r   r   r   r   r   nestedas_posix)rW   rt   s     rF   r   zCMakeFileGroup.log   s   !49TYYtz-B-B#C#CDDD!49TYYt|-D-D#E#EFFF!49TYY7V7V7V7V7V-W-W#X#XYYY!49t7H-UVVg#V#VWWW!49T]#;#;<<< 	' 	'A ' '&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's   'FF	F	Nr   r   r8   rT   r8   rT   rK   rL   rM   rX   r   rN   rH   rF   r   r      s<        9 9 9 9$	' 	' 	' 	' 	' 	'rH   r   c                      e Zd ZddZd	dZdS )
CMakeTargetr   r   r8   rT   c                   d |                     dg           D             | _        t          |                     dd                    | _        t          |                     dd                    | _        |                     dd          | _        |                     dd          | _        |                     dd	          | _        d
 t          |                     dg                     D             | _	        |                     dd          | _
        t          |                     dd                    | _        t          |                     dd                    | _        t          |                     dd                    | _        |                     dd          | _        g | _        |                     dg           D ] }| xj        t#          |          gz  c_        !d S )Nc                ,    g | ]}t          |          S rN   r   r   s     rF   ro   z(CMakeTarget.__init__.<locals>.<listcomp>   s    EEEa$q''EEErH   	artifactssourceDirectoryre   buildDirectorynamefullNamehasInstallRuleFc                ,    g | ]}t          |          S rN   r   r   s     rF   ro   z(CMakeTarget.__init__.<locals>.<listcomp>   s    QQQ!d1ggQQQrH   installPathslinkerLanguagelinkLibraries	linkFlagslinkLanguageFlagsr   
EXECUTABLE
fileGroups)r   r   r	   src_dir	build_dirr   	full_nameinstallsetinstall_paths	link_langru   link_libraries
link_flagslink_lang_flagsr   filesr   rW   r   rt   s      rF   rX   zCMakeTarget.__init__   s   EE488K+D+DEEEDHH%6;;<<dhh'7<<==&"--	"hhz266!XX&6>>QQs488NB3O3O/P/PQQQ"hh'7<<,TXXor-J-JKK(+r)B)BCC-dhh7JB.O.OPP&,77	-/
,++ 	. 	.AJJ>!,,--JJJ	. 	.rH   c           	     >   t          j        dt          j        d                    d | j        D                                            t          j        dt          j        | j                                                             t          j        dt          j        | j                                                             t          j        dt          j        | j                             t          j        dt          j        | j	                             t          j        dt          j        | j
        rd	nd
                     t          j        dt          j        d                    d | j        D                                            t          j        dt          j        | j                             t          j        dt          j        d                    | j                                       t          j        dt          j        d                    | j                                       t          j        dt          j        d                    | j                                       t          j        dt          j        | j                             t#          | j                  D ]\\  }}t          j        d| d           t          j                    5  |                                 d d d            n# 1 swxY w Y   ]d S )Nzartifacts             =r   c                6    g | ]}|                                 S rN   r   r   s     rF   ro   z#CMakeTarget.log.<locals>.<listcomp>   s!    @f@f@fRS@f@f@frH   zsrc_dir               =zbuild_dir             =zname                  =zfull_name             =zinstall               =r   r   zinstall_paths         =c                6    g | ]}|                                 S rN   r   r   s     rF   ro   z#CMakeTarget.log.<locals>.<listcomp>   s!    @j@j@jRS@j@j@jrH   zlink_lang             =zlink_libraries        =zlink_flags            =zlink_lang_flags       =ztype                  =zFiles :)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	enumerater   r   rW   idxrt   s      rF   r   zCMakeTarget.log   s   *DIdii@f@fW[We@f@f@f6g6g,h,hiii*DIdl6K6K6M6M,N,NOOO*DIdn6M6M6O6O,P,PQQQ*DIdi,@,@AAA*DIdn,E,EFFF*DI6YffRY,Z,Z[[[*DIdii@j@jW[Wi@j@j@j6k6k,l,lmmm*DIdn,E,EFFF*DIdii@S6T6T,U,UVVV*DIdii6P6P,Q,QRRR*DIdii@T6U6U,V,VWWW*DIdi,@,@AAA
++ 	 	FCH_c___%%%                	 	s   0LL	L	Nr   r   r   rN   rH   rF   r   r      s<        . . . .(     rH   r   c                      e Zd ZddZd	dZdS )
CMakeProjectr   r   r8   rT   c                X   t          |                    dd                    | _        t          |                    dd                    | _        |                    dd          | _        g | _        |                    dg           D ] }| xj        t          |          gz  c_        !d S )Nr   re   r   r   targets)r	   r   r   r   r   r   r   r   s      rF   rX   zCMakeProject.__init__   s    DHH%6;;<<dhh'7<<==&"--	,.)R(( 	- 	-ALL[^^,,LLL	- 	-rH   c                8   t          j        dt          j        | j                                                             t          j        dt          j        | j                                                             t          j        dt          j        | j                             t          | j                  D ]\\  }}t          j        d| d           t          j	                    5  |                                 d d d            n# 1 swxY w Y   ]d S )Nzsrc_dir   =zbuild_dir =zname      =zTarget r   )
r   r   r   r   r   r   r   r   r   r   r   s      rF   r   zCMakeProject.log   s&   	$,*?*?*A*A B BCCC	$.*A*A*C*C D DEEE	$) 4 4555-- 	 	FCH%s%%%&&&                	 	s   -DD	D	Nr   r   r   rN   rH   rF   r   r      s<        - - - -     rH   r   c                      e Zd ZddZd	dZdS )
CMakeConfigurationr   r   r8   rT   c                    |                     dd          | _        g | _        |                     dg           D ] }| xj        t          |          gz  c_        !d S )Nr   re   projects)r   r   r   r   r   s      rF   rX   zCMakeConfiguration.__init__   s`    &"--	.0*b)) 	/ 	/AMMl1oo..MMM	/ 	/rH   c                @   t          j        dt          j        | j                             t	          | j                  D ]\\  }}t          j        d| d           t          j                    5  |                                 d d d            n# 1 swxY w Y   ]d S )Nzname =zProject r   )r   r   r   r   r   r   r   r   s      rF   r   zCMakeConfiguration.log   s    49TY//000.. 	 	FCH&&&&'''                	 	s   1BB	B	Nr   r   r   rN   rH   rF   r   r      s<        / / / /     rH   r   c                  V    e Zd ZddZddZddZddZddZddZddZ	ddZ
ddZdS )SingleTargetOptionsr8   rT   c                >    i | _         i | _        g | _        d| _        d S )Npreserve)opts	lang_args	link_argsr   r^   s    rF   rX   zSingleTargetOptions.__init__  s"    &(	35&(!rH   optrY   r   c                    || j         |<   d S rV   )r   )rW   r   r   s      rF   set_optzSingleTargetOptions.set_opt  s    	#rH   langr   rc   c                V    || j         vr
g | j         |<   | j         |xx         |z  cc<   d S rV   r   )rW   r   r   s      rF   append_argszSingleTargetOptions.append_args  s?    t~%%#%DN4 t$rH   c                &    | xj         |z  c_         d S rV   r   )rW   r   s     rF   append_link_argsz$SingleTargetOptions.append_link_args  s    $rH   r   r9   c                    |rdnd| _         d S )Nr   r   r   )rW   r   s     rF   set_installzSingleTargetOptions.set_install  s    !(5vvgrH   initialc                    g }|D ].}|d |                     d                   }|| j        vr||gz  }/|d | j                                        D             z  }|S )Nr   c                "    g | ]\  }}| d | S )r   rN   )rm   kvs      rF   ro   z<SingleTargetOptions.get_override_options.<locals>.<listcomp>  s&    999tq!1

q

999rH   )findr   r   )rW   r  rp   rt   r   s        rF   get_override_optionsz(SingleTargetOptions.get_override_options  sp     	 	ALQVVC[[L/C$)##s
99ty'8'89999
rH   c                8    || j         v r|| j         |         z   S |S rV   r   )rW   r   r  s      rF   get_compile_argsz$SingleTargetOptions.get_compile_args"  s&    4>!!T^D111rH   c                    || j         z   S rV   r  rW   r  s     rF   get_link_argsz!SingleTargetOptions.get_link_args'  s    ''rH   c                $    |ddd| j                  S )NTF)r   r   r   r  r  s     rF   get_installzSingleTargetOptions.get_install*  s    #TEBB4<PPrH   Nr   )r   rY   r   rY   r8   rT   )r   rY   r   rc   r8   rT   )r   rc   r8   rT   )r   r9   r8   rT   )r  rc   r8   rc   )r   rY   r  rc   r8   rc   )r  r9   r8   r9   )rK   rL   rM   rX   r   r   r  r  r  r  r  r  rN   rH   rF   r   r     s        " " " "   % % % %
   6 6 6 6      
( ( ( (Q Q Q Q Q QrH   r   c                  >    e Zd ZddZddZdd
ZddZddZddZdS )TargetOptionsr8   rT   c                :    t                      | _        i | _        d S rV   )r   global_optionstarget_optionsr^   s    rF   rX   zTargetOptions.__init__.  s    133@BrH   tgtrY   r   c                Z    || j         vrt                      | j         |<   | j         |         S rV   )r  r   )rW   r  s     rF   __getitem__zTargetOptions.__getitem__2  s1    d)))':'<'<D$"3''rH   r  rc   c                    | j                             |          }|| j        v r | j        |                             |          }|S rV   )r  r  r  rW   r  r  s      rF   r  z"TargetOptions.get_override_options7  sF    %::7CC$%%%)#.CCGLLGrH   r   c                    | j                             ||          }|| j        v r!| j        |                             ||          }|S rV   )r  r  r  )rW   r  r   r  s       rF   r  zTargetOptions.get_compile_args=  sJ    %66tWEE$%%%)#.??gNNGrH   c                    | j                             |          }|| j        v r | j        |                             |          }|S rV   )r  r  r  r  s      rF   r  zTargetOptions.get_link_argsC  sF    %33G<<$%%%)#.<<WEEGrH   r9   c                    | j                             |          }|| j        v r | j        |                             |          }|S rV   )r  r  r  r  s      rF   r  zTargetOptions.get_installI  sF    %11'::$%%%)#.::7CCGrH   Nr   )r  rY   r8   r   )r  rY   r  rc   r8   rc   )r  rY   r   rY   r  rc   r8   rc   )r  rY   r  r9   r8   r9   )	rK   rL   rM   rX   r  r  r  r  r  rN   rH   rF   r  r  -  s        C C C C( ( ( (
              rH   r  )r6   r7   r8   r9   )rb   rY   r8   rc   )r6   r7   r8   rc   r   )rb   r{   r|   r9   r8   rc   )r   rc   r8   rc   )"
__future__r   mesonlibr   optionsr   re   r   pathlibr	   typingTTYPE_CHECKINGenvironmentr
   interpreterbaser   language_maprx   r   rG   rJ   rP   ru   rz   r   r   r   r   r   r   r   r   r  rN   rH   rF   <module>r+     s   # " " " " " % % % % % %                      ? +))))))****** 

  %%%%%%%
 
    
 
 
 
	 	 	 	 	^ 	 	 	g g g g g g g g   :7 7 7 7    *   L L L L L L L L' ' ' ' ' ' ' '<' ' ' ' ' ' ' 'R       &       'Q 'Q 'Q 'Q 'Q 'Q 'Q 'QR                   rH   