+
    UBi)                       ^ RI Ht ^ RIt^ RIHt ^ RIt^ RIt^ RI	t	^RI
Ht ^RIHtHtHtHt ^RIHtHt ]P(                  '       d   ^ RIHt ^RIHt ^R	IHt ^R
IHt ]P6                  ]]P:                  ],          ]P:                  ],          3,          t]P6                  ]]P6                  ]R3,          ]]P@                  ]P6                  ]]3,          ,          3,          t! ! R R4      t"R# )    )annotationsN)Thread)mlog)
PerMachine
Popen_safeversion_compare
is_windows)find_external_programNonExistingExternalProgram)Path)Environment)MachineChoice)ExternalProgram.c                  .   ] tR t^t$ ]! RR4      tR]R&   ]! RR4      tR]R&   / tR]R&   R)R R	 llt	R)R
 R llt
R R ltR*R R lltR R ltR R ltR R ltR R ltR R ltR+R R lltR R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR(tR# ),CMakeExecutorNz'PerMachine[T.Optional[ExternalProgram]]class_cmakebinzPerMachine[T.Optional[str]]class_cmakeverszT.Dict[T.Any, TYPE_result]class_cmake_cachec               (    V ^8  d   QhRRRRRRRR/# )	   environment'Environment'versionstrfor_machiner   silentbool )formats   ">/usr/lib/python3.14/site-packages/mesonbuild/cmake/executor.py__annotate__CMakeExecutor.__annotate__!   s/     d dM dC dm dei d    c           
     	   W n         Wn        W0n        V P                  V P                  VR 7      w  V n        V n        RV n        RV n        . V n        . V n	        V P                  f   R# \        V P
                  V P                   4      '       g   \        P                  ! R\        P                  ! V P                  P                  4       4      R\        P                  ! V P
                  4      R\        P                  ! V P                   4      R4       RV n        R# V P                  P                  P                   P#                  R4      p\%        V\&        4      '       g   Q hWPn        V P                  '       dE   V ;P                  R	P)                  R
P+                  V P                  4      4      .,          un	        R# R# ))r   TFNzThe version of CMakeiszbut versionzis requiredcmake_prefix_pathz-DCMAKE_PREFIX_PATH={};)min_versionr   r   find_cmake_binarycmakebin	cmakeversalways_capture_stderrprint_cmoutprefix_pathsextra_cmake_argsr   r   warningboldget_pathcoredataoptstoreget_value_for
isinstancelistr   join)selfr   r   r   r   prefpaths   &&&&& r    __init__CMakeExecutor.__init__!   sT   "&&(,(>(>t?O?OX^(>(_%t~%)" )+-/== t~~t/?/?@@LL&		$--2H2H2J(Kdii/		$JZJZ@[ !DM##,,55CCDWX(D))))$!!&>&E&EchhtO`O`Fa&b%cc! r#   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   returnz7T.Tuple[T.Optional['ExternalProgram'], T.Optional[str]]r   )r   s   "r    r!   r"   <   s+     !o !o] !oD !o  VM !or#   c           	     	   \        \        P                  V P                  ,          \        4      '       d'   \
        P                  ! R V P                   R24       R# \        P                  V P                  ,          e'   \
        P                  ! R V P                   R24       EM\        P                  V P                  ,          e   Q h\
        P                  ! R V P                   R24       \        WP                  RRVP                  RR7       F  pV P                  V4      pV'       g   K  V'       g?   \
        P                  ! R	\
        P                  ! VP                  4       4      R
V R24       V\        P                  V P                  &   V\        P                  V P                  &    My	  V'       g,   \
        P                  ! R	\
        P                  ! R4      4       \	        4       \        P                  V P                  &   R\        P                  V P                  &   R# \        P                  V P                  ,          \        P                  V P                  ,          3# )zCMake binary for z is cached as not foundNz is cached.z is not cachedcmakeCMakeF)allow_default_for_crosszFound CMake:()NONN)r6   r   r   r   r   r   debugr
   default_cmakecheck_cmakelogr1   r2   r   red)r9   r   r   potential_cmakebinversion_if_oks   &&&  r    r)   CMakeExecutor.find_cmake_binary<   s    m2243C3CDF`aaJJ*4+;+;*<<STU))$*:*:;GJJ*4+;+;*<KHI //0@0@AIIIJJ*4+;+;*<NKL&;!1!17G--u'N" !% 0 01C D$HH^TYY7I7R7R7T-U q13AS,,T-=-=>BO--d.>.>?'N HH^TXXd^< B\A],,T-=-=>BF--d.>.>?!!++D,<,<=}?\?\]a]m]m?nnnr#   c                    V ^8  d   QhRRRR/# )r   r*   z'ExternalProgram'r>   zT.Optional[str]r   )r   s   "r    r!   r"   _   s      $5 / r#   c                	:   VP                  4       '       g'   \        P                  ! R VP                  : 24       R#  VP	                  4       p\        VR.,           4      R,          w  r4VP                  ^ 8w  d7   \        P                  ! RP                  RP                  V4      4      4       R#  \        P                  ! R	T4      pTe   TP                  ^4      # \        P                  ! R
T: R24       R#   \         d9    \        P                  ! RP                  RP                  X4      4      4        R# \         dT    RP                  RP                  X4      4      p\        4       '       g
   TR,          p\        P                  ! T4        R# i ; i)zDid not find CMake Nz	--version:r   r   Nz$Found CMake {!r} but couldn't run it z?We thought we found CMake {!r} but now it's not there. How odd!z7Found CMake {!r} but didn't have permissions to run it.zO

On Unix-like systems this is often caused by scripts that are not executable.z#(cmake|cmake3)\s*version\s*([\d.]+)zWe thought we found CMake z?, but it was missing the expected version string in its output.)foundr   rJ   nameget_commandr   
returncoder0   r   r8   FileNotFoundErrorPermissionErrorr	   researchgroup)r9   r*   cmdpoutmsgcmverss   &&     r    rI   CMakeExecutor.check_cmake_   sQ   ~~HH*8==*;<=	&&(C{m 34S9FA||q    &sxx} 57 ! A3G<<?"1# 95 5 	6! ! 	LL "F388C=13 	LSSTWT\T\]`TabC<<jjLL	s   A1C; ;?F=FAFFc               $    V ^8  d   QhRRRRRR/# )r   r-   zT.Optional[bool]r,   r>   Noner   )r   s   "r    r!   r"   |   s$     ? ?)9 ?Yi ?uy ?r#   c                	2    Ve   Wn         Ve	   W n        R # R # N)r-   r,   )r9   r-   r,   s   &&&r    set_exec_modeCMakeExecutor.set_exec_mode|   s    "* ,)>& -r#   c               (    V ^8  d   QhRRRRRRRR/# )	r   argsT.List[str]	build_dirr   envT.Optional[T.Dict[str, str]]r>   TYPE_cache_keyr   )r   s   "r    r!   r"      s0     M M{ Mt MB^ Mcq Mr#   c                	    Ve   \        VP                  4       4      M	\        4       p\        V4      pV P                  P	                  4       WRP                  4       V3# rd   )	frozensetitemstupler*   r2   as_posix)r9   rh   rj   rk   fenvtargss   &&&&  r    
_cache_keyCMakeExecutor._cache_key   sF    ),y%ikd&&(%1C1C1EtLLr#   c               (    V ^8  d   QhRRRRRRRR/# 	r   rh   ri   rj   r   rk   rl   r>   TYPE_resultr   )r   s   "r    r!   r"      s*     )0 )0{ )0t )0Jf )0kv )0r#   c                	  a V P                   P                  4       V,           p\        P                  ! V\        P                  \        P                  \        V4      VR 7      oR V3R llp\        VR7      pVP                  4         Rp\        P                  ! R4      pRp	 SP                  P                  4       p
V
'       g   MV
P                  RR7      pVP                  V4      '       d!   W{,          pVP                  R	4      '       * p	Km  V	'       d   W{,          pK  \        P                   ! VP#                  R
4      4       K  SP                  P%                  4        VP'                  4        SP)                  4        SP*                  RV3#   SP                  P%                  4        TP'                  4        SP)                  4        i ; i)stdoutstderrcwdrk   c                   V ^8  d   QhRR/# )r   r>   rb   r   )r   s   "r    r!   6CMakeExecutor._call_cmout_stderr.<locals>.__annotate__   s     	  	 d 	 r#   c                    <  SP                   P                  4       p V '       g   M7\        P                  ! V P	                  RR7      P                  R4      4       K[  SP                   P                  4        R# )Tignoreerrors
N)r|   readliner   rJ   decodestripclose)lineprocs    r    print_stdout6CMakeExecutor._call_cmout_stderr.<locals>.print_stdout   sP    {{++-H5;;DABKKr#   )target z/^\s*(.*\.(cmake|txt))\(([0-9]+)\):\s*(\w+)\(.*$Fr   r   z )
r   N)r*   rT   SPopenPIPEr   r   startrX   compiler}   r   r   matchendswithr   r0   r   r   r8   waitrU   )r9   rh   rj   rk   r[   r   t	raw_tracetline_start_reginside_multiline_traceline_rawr   r   s   &&&&        @r    _call_cmout_stderr CMakeExecutor._call_cmout_stderr   sL   mm'')D0wws166!&&c)nRUV
	  	  ,'			I jj)[\O%*";;//1h7"((..%I15v1F-F*+%ILLD!12 KKFFHIIKi//	 KKFFHIIKs   	<F )F 0'F 1F <Gc               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r    r!   r"      s*     
+ 
+ 
+ 
+C_ 
+do 
+r#   c                	   V P                   P                  4       V,           p\        P                  ! V\        P                  \        P
                  \        V4      VR 7      p VP                  P                  4       pV'       g   M7\        P                  ! VP                  RR7      P                  R4      4       K[  VP                  P                  4        VP                  4        VP                  RR3# )r{   r   r   r   N)r*   rT   r   r   r   STDOUTr   r|   r   r   rJ   r   r   r   r   rU   )r9   rh   rj   rk   r[   r   r   s   &&&&   r    _call_cmoutCMakeExecutor._call_cmout   s    mm'')D0wws166!((ITWX;;'')DHHT[[[177=>		d**r#   c               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r    r!   r"      s*        C_ do r#   c           
     	|   VP                  R R R7       V P                  P                  4       V,           p\        P                  ! WC\        V4      R\        P                  \        P                  RR7      pVP                  pVP                  P                  RR7      pVP                  P                  RR7      pWgV3# )T)parentsexist_okF)rk   r~   	close_fdsr|   r}   universal_newlinesr   r   )mkdirr*   rT   r   runr   r   rU   r|   r   r}   )	r9   rh   rj   rk   r[   retrcr]   errs	   &&&&     r    _call_quietCMakeExecutor._call_quiet   s    t4mm'')D0eeCc)n66!&&UL^^jjx0jjx0|r#   c               (    V ^8  d   QhRRRRRRRR/# rx   r   )r   s   "r    r!   r"      s*     
> 
>{ 
>t 
>B^ 
>cn 
>r#   c                	f   \         P                  ! R V P                  P                  4        RV R24       V F  p\         P                  ! RV R24       K  	  V P                  '       g   V P                  WV4      # V P                  '       d   V P                  WV4      # V P                  WV4      # )zCalling CMake (z) in z with:z  - "")	r   rG   r*   rT   r-   r   r,   r   r   )r9   rh   rj   rk   is   &&&& r    
_call_implCMakeExecutor._call_impl   s    

_T]]%>%>%@$AykQWXYAJJqc|$ ##DS99)))..tDD''==r#   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   rh   ri   rj   r   rk   rl   disable_cacher   r>   ry   r   )r   s   "r    r!   r"      s6        <X pt   BM r#   c                	&   Vf   \         P                  P                  4       pWP                  ,           pV'       d   V P	                  WV4      # \
        P                  pV P                  WV4      pWe9  d   V P	                  WV4      WV&   WV,          # rd   )osenvironcopyr/   r   r   r   ru   )r9   rh   rj   rk   r   cachekeys   &&&&&  r    callCMakeExecutor.call   sv    ;**//#C+++??4C88 //oods3#>EJzr#   c                   V ^8  d   QhRR/# )r   r>   r   r   )r   s   "r    r!   r"      s     ) )t )r#   c                	    V P                   R J# rd   )r*   r9   s   &r    rR   CMakeExecutor.found   s    }}D((r#   c                   V ^8  d   QhRR/# r   r>   r   r   )r   s   "r    r!   r"      s       r#   c                	    V P                   # rd   )r+   r   s   &r    r   CMakeExecutor.version   s    ~~r#   c                   V ^8  d   QhRR/# r   r   )r   s   "r    r!   r"      s     ( ( (r#   c                	6    V P                   P                  4       # rd   )r*   r2   r   s   &r    executable_pathCMakeExecutor.executable_path   s    }}%%''r#   c                   V ^8  d   QhRR/# r   r>   ri   r   )r   s   "r    r!   r"      s     + +[ +r#   c                	6    V P                   P                  4       # rd   )r*   rT   r   s   &r    rT   CMakeExecutor.get_command   s    }}((**r#   c                   V ^8  d   QhRR/# r   r   )r   s   "r    r!   r"      s     ! ! !r#   c                	    V P                   # rd   )r.   r   s   &r    get_cmake_prefix_paths$CMakeExecutor.get_cmake_prefix_paths   s       r#   c                   V ^8  d   QhRR/# )r   r>   r   r   )r   s   "r    r!   r"      s          r#   c                	    V P                   # rd   )r   r   s   &r    machine_choiceCMakeExecutor.machine_choice   s    r#   )	r,   r*   r+   r   r/   r   r(   r.   r-   )FrF   )NF)__name__
__module____qualname____firstlineno__r   r   __annotations__r   r   r;   r)   rI   re   ru   r   r   r   r   r   rR   r   r   rT   r   r   __static_attributes__r   r#   r    r   r      s     ?It>TN;T3=dD3IO0I4616d6!oF:?M
)0V
+
>)(+!   r#   r   )#
__future__r   
subprocessr   	threadingr   typingTrX   r   r   r   mesonlibr   r   r   r	   programsr
   r   TYPE_CHECKINGpathlibr   r   r   r   r   TupleintOptionalr   ry   	FrozenSetrm   r   r   r#   r    <module>r      s    #    	 	  J J H???)(*''#qzz#

3?@KWWS!''#s("3S!++aggcSVhFW:XXYNY  Y r#   