
    -Ph]/                    4   d dl mZ 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
mZm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 ddlmZ ej        rddlmZ  G d de          Z G d de          Zeed<    G d de          Z G d de          Zeed<    G d de          Z  edej!        ej"        ge          xed<   Z# edej!        ej$        ej%        ej&        ged          xed<   Z' edej!        ej"        ge           xed<   Z(dS )     )annotationsN   )mlog)mesonlib)
Popen_safeextract_as_listversion_compare_many)detect_cpu_family   )DependencyExceptionDependencyMethodsDependencyTypeNameSystemDependency)ConfigToolDependency)packages)DependencyFactory)Environmentc                        e Zd Zd
 fd	Z xZS )GLDependencySystemnamestrenvironment'Environment'kwargsT.Dict[str, T.Any]returnNonec                   t                                          |||           | j        j        | j                                                 rd| _        ddg| _        d S | j        j        | j                                                 rd| _        dg| _        d S | j	        
                    d|g           }| j	                            dd|          d         }|r|rd| _        || _        d S |rt          d	          d S )
NTz
-frameworkOpenGLz
-lopengl32GLzGL/gl.h r   z8Found GL runtime library but no development header files)super__init__envmachinesfor_machine	is_darwinis_found	link_args
is_windowsclib_compilerfind_library
has_headerr   )selfr   r   r   linksr-   	__class__s         Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/dependencies/ui.pyr#   zGLDependencySystem.__init__   s   {F3338T-.88:: 	f DM*H5DNFXt/0;;== 	f DM*^DNF&33D+rJJE+66y"kRRSTUJ f f $!& f)*deeef f    )r   r   r   r   r   r   r   r   __name__
__module____qualname__r#   __classcell__r0   s   @r1   r   r      sG        f f f f f f f f f fr2   r   c                  l     e Zd ZdgZdZd fdZdddZedd            Zedd            Z	ddZ
 xZS )GnuStepDependencyzgnustep-configr   r   r   r   r   r   c                l   t                                          d||d           | j        sd S |                    dg           | _        |                     |                     dgd                    | _        |                     |                     d| j        v rdnd	gd
                    | _	        d S )Ngnustepobjclanguagemodulesz--objc-flagscompile_argsguiz
--gui-libsz--base-libsr)   )
r"   r#   r(   getr@   filter_argsget_config_valuerA   weird_filterr)   )r.   r   r   r0   s      r1   r#   zGnuStepDependency.__init__;   s    K&III} 	Fzz)R00 ,,!!>"2NCCE E**4+@+@"dl22\\F, ,  r2   Nr   versionsT.Optional[T.List[str]]
returncodeintexclude_paths1T.Tuple[T.Optional[T.List[str]], T.Optional[str]]c                   | j         d         g}	 t          |dgz             d d         \  }}n# t          t          f$ r Y dS w xY w|j        |k    rdS || _        |                                 }|rt          ||          d         sd |fS ||fS )Nr   z--helpr   )NN)toolsr   FileNotFoundErrorPermissionErrorrI   configdetect_versionr	   )r.   rG   rI   rK   toolpoutfound_versions           r1   find_configzGnuStepDependency.find_configF   s    
1	 z 1222A26FAss!?3 	  	  	 <<	 <:%%<++-- 	)0II!L 	)-((m$$s   / AAelemsT.List[str]c                    d | D             S )zWhen building packages, the output of the enclosing Make is
        sometimes mixed among the subprocess output. I have no idea why. As a
        hack filter out everything that is not a flag.
        c                <    g | ]}|                     d           |S )-)
startswith).0es     r1   
<listcomp>z2GnuStepDependency.weird_filter.<locals>.<listcomp>[   s)    666aALL$5$56666r2    )rX   s    r1   rF   zGnuStepDependency.weird_filterU   s     7656666r2   argsc                    g }| D ]w}|                     d          sK|                     d          s6|                     d          s!|dk    s|                     d          r|dk    s|                    |           x|S )zzgnustep-config returns a bunch of garbage args such as -O2 and so
        on. Drop everything that is not needed.
        z-D-f-Iz-pthreadz-Wz-Wall)r]   append)rb   resultfs      r1   rD   zGnuStepDependency.filter_args]   s    
  	! 	!A||D!! !||D))!||D))! JT** '34<<a   r2   r   c                   |                      dgd          d         }|                      dgd          d         }t          j                            |dd          }d}t          j                                        }d|d	<   t          |d
dd
|dg||t          j                  \  }}}|	                                }	|	st          j        d           d}	|	S )Nz--variable=GNUMAKEvariabler   z--variable=GNUSTEP_MAKEFILES
Additionalz	base.makezprint-%:
	@echo '$($*)'gnuFOUNDATION_LIBrd   r\   zprint-GNUSTEP_BASE_VERSION)r$   writestdinz4Couldn't detect GNUStep version, falling back to '1'1)rE   ospathjoinenvironcopyr   
subprocessPIPEstripr   debug)
r.   gmakemakefile_dir	base_makeprintverr$   rT   or_   versions
             r1   rR   z GnuStepDependency.detect_versionl   s    %%';&<jII!L,,.L-MzZZ[\]GLL|[II	 /joo %eT3i:<!$HJOM M M1a '')) 	JMNNNGr2   )r   r   r   r   r   r   )Nr   N)rG   rH   rI   rJ   rK   rH   r   rL   )rX   rY   r   rY   )rb   rY   r   rY   )r   r   )r4   r5   r6   rN   	tool_namer#   rW   staticmethodrF   rD   rR   r7   r8   s   @r1   r:   r:   6   s        E I	 	 	 	 	 	% % % % % 7 7 7 \7    \       r2   r:   r<   c                  *     e Zd ZdgZdZd	 fdZ xZS )
SDL2DependencyConfigToolzsdl2-configr   r   r   r   r   r   c                    t                                          |||           | j        sd S |                     dgd          | _        |                     dgd          | _        d S )Nz--cflagsrA   --libsr)   )r"   r#   r(   rE   rA   r)   )r.   r   r   r   r0   s       r1   r#   z!SDL2DependencyConfigTool.__init__   se    {F333} 	F 11:,OO..z;GGr2   )r   r   r   r   r   r   )r4   r5   r6   rN   r   r#   r7   r8   s   @r1   r   r      sS        OEIH H H H H H H H H Hr2   r   c                  D     e Zd Zg dZdZd fdZedd
            Z xZS )WxDependency)zwx-config-3.0zwx-config-3.1	wx-configzwx-config-gtk3r   r   r   r   r   c                   t                                          d||d           | j        sd S |                     |          | _        g }| j        rS|                    d           t          | j        |z             d         }d|v rt          j
        d           d| _        d S |                     d	g|z   | j        z   d
          | _        |                     dg|z   | j        z   d          | _        d S )N	WxWidgetscppr>   z--static=yesr   zNo config found to matchz&WxWidgets is missing static libraries.Fz
--cxxflagsrA   r   r)   )r"   r#   r(   get_requestedrequested_modulesstaticrf   r   rQ   r   ry   rE   rA   r)   )r.   r   r   
extra_argserrr0   s        r1   r#   zWxDependency.__init__   s   k6EJJJ} 	F!%!3!3F!;!;
; 	n--- T[:566q9C)S00
CDDD % !11<.:2MPTPf2fhvww..zJ/FI_/_almmr2   r   rY   c                    d| vrg S t          | d          }|D ]&}t          |t                    st          d          '|S )Nr@   z)wxwidgets module argument is not a string)r   
isinstancer   r   )r   
candidatescs      r1   r   zWxDependency.get_requested   s`    F""I$VY77
 	W 	WAa%% W)*UVVVWr2   )r   r   r   r   )r   r   r   rY   )	r4   r5   r6   rN   r   r#   r   r   r7   r8   s   @r1   r   r      ss        MMMEIn n n n n n,    \    r2   r   	wxwidgetsc                  "     e Zd Zdd fdZ xZS )VulkanDependencySystemNr   r   r   r   r   r   r?   T.Optional[str]r   r   c                    t                                          |||           	 t          j                            dt          j        d                    _        t          j                             j                  st          d          n# t          $ r
 d  _        Y nw xY w j        rd}d}d}t          j                    r/d}d	}d
}t           j        j        j        j                  dk    rd}t          j                             j        |          }t          j                            |dd          }	t          j                             j        |          }
 j                            ||
g          }|st          d          t          j                            |	          st          d          t+          d           _        d _         j                            d|z               j                            d|
z               j                            d|z              nh j                            dg           }|J j                            ddd          d         r&d _        |D ]} j                            |            j        r	  fddD             }d                    |           _        d S # t          j        $ r  j        r~t=          j        dt=          j         t          j        j!                   d j                  }|r|"                    d           _        Y d S tG          j$        d j         d            Y d S Y d S w xY wd S )!Nr>   
VULKAN_SDKVK_SDK_PATHz$VULKAN_SDK must be an absolute path.vulkanlibincludezvulkan-1Lib32Includex86_64Libzvulkan.hz.VULKAN_SDK point to invalid directory (no lib)z2VULKAN_SDK point to invalid directory (no include)
vulkan_sdkTre   z-Lz-lzvulkan/vulkan.hr!   )disable_cacher   c                |    g | ]8\  }}t          j                            d | ddd|ddd                    9S )VK_VERSION_z(VK_HEADER_VERSION_COMPLETE)r   Nz#include <vulkan/vulkan.h>)lowhighguessprefixr$   r   dependencies)r   r+   compute_int)r^   r   r_   r   r.   s      r1   r`   z3VulkanDependencySystem.__init__.<locals>.<listcomp>   s     Y Y Y #'!Q "$"4"@"@AnqAnAnAnEFTYZHdEPLPNR #A #T #T U U Y Y Yr2   ))MAJORr   )MINOR   )PATCHN.	VulkanSDKz([0-9]+(?:\.[0-9]+)+)r   z Environment variable VULKAN_SDK=z7 is present, but Vulkan version could not be extracted.)%r"   r#   rq   rt   rC   r   rr   isabsr   KeyErrorr   r*   r
   r$   coredata	compilershostrs   r+   r,   isfiler   	type_namer(   rA   rf   r)   r-   r   EnvironmentExceptionresearchescapesepgroupr   warning)r.   r   r   r   r?   lib_namelib_dirinc_dirinc_pathheaderlib_pathfind_liblibsr   
componentsmatchr0   s   ` `             r1   r#   zVulkanDependencySystem.__init__   s   {FXFFF	# jnn\2:m;TUUDO7==11 R)*PQQQR 	# 	# 	#"DOOO	# ? %	/  HGG"$$ $%!#$TX%6%@%EFF(RR#G w||DOW==HW\\(HjAAFw||DOW==H)66xxjYYH \)*Z[[[7>>&)) `)*^___ 0==DN DM$$TH_555N!!$/222N!!$/2222 %228["MMDD$6$A$ABSUWYdtx$A$y$yz{$| $ / /CN))#....= 	RRY Y Y Y Y +XY Y Y
  #xx
330 R R R? R I&`29RW[3I3I&`&`&`bfbqrrE R',{{1~~  &Q  &Q  &Q  &Q  R  R  R  R  R  RR R RR	R 	Rs+   A(B B'&B'$)K A1M'M'&M')N)
r   r   r   r   r   r   r?   r   r   r   r3   r8   s   @r1   r   r      sX        GR GR GR GR GR GR GR GR GR GR GRr2   r   gl)system_classsdl2SDL2)configtool_class
cmake_namer   ))
__future__r   rq   r   rv   typingTr!   r   r   r   r   r	   r   r
   baser   r   r   r   
configtoolr   detectr   factoryr   TYPE_CHECKINGr   r   r:   r   r   r   	PKGCONFIGSYSTEM
gl_factoryCONFIG_TOOLEXTRAFRAMEWORKCMAKEsdl2_factoryvulkan_factoryra   r2   r1   <module>r      s   # " " " " " 				 				                              , + + + + + ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ , , , , , ,       & & & & & &? *))))))f f f f f) f f f2J J J J J, J J JX ( 
H 
H 
H 
H 
H3 
H 
H 
H# # # # #' # # #J % IR IR IR IR IR- IR IR IRV 0/ "3":;#    #4"3
 "3"?ARAactcz{-	# # #  < '8&7 "3":;'' ' '  ^^^r2   