+
    UBiZ2                      a  0 t $ ^ RIHt ^ RIt^ RIt^ RIt^RIHt ^RIH	t	 ^RIH
t
 ^ RIt]P                  ! 4       t]P                  RRRRR	7       ]P                  R
RR7       R]R&   RtR R ltR R ltR4R 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" R# 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 R0 R1 lt!]"R28X  d,   ]PF                  ! ]!! ]PH                  R3,          4      4       R# R# )5    )annotationsN)mesonlib)mlog)
Popen_safez--cross-host
cross_hostzcross compilation host platform)defaultdesthelpargs+)nargsstrTOOL_WARNING_FILEz/Relinking will always happen on source changes.c                    V ^8  d   QhRRRR/# )   outfilenamer   returnNone )formats   "G/usr/lib/python3.14/site-packages/mesonbuild/scripts/symbolextractor.py__annotate__r      s      C D     c                n    \        V RRR7      ;_uu_ 4         RRR4       R#   + '       g   i     R# ; i)z*Just touch it so relinking happens always.wutf-8encodingN)open)r   s   &r   
dummy_symsr       s#    	k3	1	1 
2	1	1	1s   #4	c               $    V ^8  d   QhRRRRRR/# )r   textr   r   r   r   r   )r   s   "r   r   r   "   s!     	 	3 	S 	T 	r   c                H    \        VR R7      ;_uu_ 4       pVP                  4       pRRR4       V X8X  d   R#  \        VRR R7      ;_uu_ 4       pVP                  V 4       RRR4       R#   + '       g   i     LL; i  \         d     LRi ; i  + '       g   i     R# ; i)r   r   Nr   )r   readFileNotFoundErrorwrite)r"   r   foldtexts   &&  r   write_if_changedr)   "   s    +00AffhG 17?  
k3	1	1Q	 
2	1 10  	1	1	1s3   A? A,A? B,A<	7A? ?BBB!	c               (    V ^8  d   QhRRRRRRRR/# )	r   toolsT.List[str]msgr   stderrzT.Optional[str]r   r   r   )r   s   "r   r   r   -   s)     	 	k 	 	_ 	X\ 	r   c                F   \         P                  P                  \        4      '       d   R # V : RV R\         2pV'       d   VRV,           ,          p\
        P                  ! V4       \        \        RRR7      ;_uu_ 4         R R R 4       R #   + '       g   i     R # ; i)N z. 
r   r   r   )ospathexistsr   RELINKING_WARNINGr   warningr   )r+   r-   r.   ms   &&& r   print_tool_warningr8   -   so    	ww~~'(()1SE-./A	TF]LLO	w	7	7 
8	7	7	7s   BB 	c                    V ^8  d   QhRRRR/# )r   namer   r   r,   r   )r   s   "r   r   r   8   s      3 ; r   c                    V P                  4       pV\        P                  9   d+   ^ RIpVP	                  \        P                  V,          4      # V .# )r   N)upperr2   environshlexsplit)r:   evarr>   s   &  r   get_toolrA   8   s;    ::<Drzz{{2::d+,,6Mr   c               (    V ^8  d   QhRRRRRRRR/# )r   r:   r   r   r,   kwargsT.Anyr   r   )r   s   "r   r   r   ?   s(      C { e  r   c                    \        V 4      p \        W1,           3/ VB w  rEpTP
                  ^ 8w  d   \        TRT4       R# T#   \         d    \        TR 4        R# \         d    \        TR4        R# i ; i)z	not foundNz
not usablezdoes not work)rA   r   r%   r8   PermissionError
returncode)r:   r   rC   toolpoutputes   &&,    r   	call_toolrL   ?   sz    D>D!$+881 	||q4!4M  4- 4.s   A A8A8'A87A8c               $    V ^8  d   QhRRRRRR/# )r   rH   r,   rC   rD   r   zT.Tuple[str, str]r   )r   s   "r   r   r   N   s"     	 	; 	% 	<M 	r   c                     \        V 3/ VB w  r#pTP                  ^ 8w  d   R T3# TR 3#   \         d    R RP                  T ^ ,          4      3u # \         d    R RP                  T ^ ,          4      3u # i ; i)Nz{!r} not found
z{!r} not usable
)r   r%   r   rF   rG   )rH   rC   rI   rJ   rK   s   &,   r   call_tool_nowarnrO   N   s    9!$1&11
 	||qQw4<  8'..tAw777 9(//Q8889s   * %A8A8A87A8c               $    V ^8  d   QhRRRRRR/# r   libfilenamer   r   r   r   r   )r   s   "r   r   r   Y   s!     < <# <C <D <r   c                |   \        R RV .4      pV'       g   \        V4       R# VP                  R4       Uu. uF  pRV9   g   K  VNK  	  pp\        V4      ^8:  g   Q h\        RRRRR	V .4      pV'       g   \        V4       R# VP                  R4       F{  pV'       g   K  VP                  4       pVR
,          pV^,          P	                  4       R9   d!   \        V4      ^8  d   Wv^,          .,          pVRP                  V4      .,          pK}  	  \        RP                  V4      R,           V4       R# u upi )readelf-dNr1   SONAMEnm	--dynamic--extern-only--defined-only--format=posixr   r   Nr0   >   BDG)rL   r    r?   lenr<   joinr)   )rR   r   rJ   xresultline
line_splitentrys   &&      r   gnu_symsrg   Y   s   y4"56F;d+=+Ax1}aa+F=v;!tk?<L.= >F;T"ZZ\
3 a= O3J18Lm_$E388E?## # TYYv&-{;' >s   	D9D9c               $    V ^8  d   QhRRRRRR/# rQ   r   )r   s   "r   r   r   t   s!     & &c & & &r   c                    \         P                  R ,          p RV,           \         P                  R &   \        W4       V\         P                  R &   R#   T\         P                  R &   i ; i)PATHz/usr/gnu/bin:N)r2   r=   rg   )rR   r   origpaths   && r   solaris_symsrl   t   sM    zz&!H&,x7

6*%

6X

6s   %A A(c               $    V ^8  d   QhRRRRRR/# rQ   r   )r   s   "r   r   r   }   s!     < <# <C <D <r   c                   \        R RV .4      pV'       g   \        V4       R# VP                  R4      p\        V4       F  w  rERV9   g   K  Tp M	  VX^,           ,          W6^,           ,          .p\        RRRRV .4      pV'       g   \        V4       R# YrP                  R4       Uu. uF)  pR	P	                  VP                  4       R
,          4      NK+  	  up,          p\        RP	                  V4      R,           V4       R# u upi )otoolz-lNr1   LC_ID_DYLIBrW   -gz-U-Pr0   r\   )rL   r    r?   	enumeratera   r)   )	rR   r   rJ   arrivalmatchrc   rb   s	   &&       r   osx_symsrx   }   s    w{ 34F;
,,t
CcNCE # %!)nc!)n-F tdD$<=F;
d1CD1CAsxx	#'1CDDFTYYv&-{; Es   +/Dc               $    V ^8  d   QhRRRRRR/# rQ   r   )r   s   "r   r   r      s!     < <c < < <r   c                >   \        R RV .4      pV'       g   \        V4       R# VP                  R4       Uu. uF  pRV9   g   K  VNK  	  pp\        V4      ^8:  g   Q h\        RRRRV .4      pV'       g   \        V4       R# YBP                  R4       Uu. uFK  q3'       g   K  VP	                  R	4      '       d   K%  R
P                  VP                  4       R,          4      NKM  	  up,          p\        RP                  V4      R,           V4       R# u upi u upi )rT   rU   Nr1   rV   rW   z-Drr   rq   zU r0   r\   )rL   r    r?   r`   endswithra   r)   rR   r   rJ   rb   rc   s   &&   r   openbsd_symsr}      s    y4"56F;d+=+Ax1}aa+F=v;!tdD$<=F;
d1Cb1CAq'QRQ[Q[\`Qa'sxx	#'1CbbFTYYv&-{; > cs   	DD	D%D>*Dc               $    V ^8  d   QhRRRRRR/# rQ   r   )r   s   "r   r   r      s!     < <c < < <r   c                   \        R RV .4      pV'       g   \        V4       R# VP                  R4       Uu. uF  pRV9   g   K  VNK  	  pp\        V4      ^8:  g   Q h\        RRRRR	V .4      pV'       g   \        V4       R# YBP                  R4       Uu. uF)  pR
P	                  VP                  4       R,          4      NK+  	  up,          p\        RP	                  V4      R,           V4       R# u upi u upi )rT   rU   Nr1   rV   rW   rX   rY   rZ   r[   r0   r\   )rL   r    r?   r`   ra   r)   r|   s   &&   r   freebsd_symsr      s    y4"56F;d+=+Ax1}aa+F=v;!tk?<L.= >F;
d1CD1CAsxx	#'1CDDFTYYv&-{; > Es   	C4C4/C9c               $    V ^8  d   QhRRRRRR/# r   impfilenamer   r   r   r   r   )r   s   "r   r   r      s!     < <S <s <t <r   c                r   \        R RV .4      pV'       g   \        V4       R# V.p\        RRRRV .4      pV'       g   \        V4       R# VP                  R4       F4  pRV9  d   K  VP                  VP                  ^R	7      ^ ,          4       K6  	  \	        RP                  V4      R,           V4       R# )
dlltool-INrW   rY   rZ   r[   r1    T maxsplit)rL   r    r?   appendr)   ra   )r   r   rJ   rc   rd   s   &&   r   cygwin_symsr      s    y4"56F;XFto/?.= >F;T"djj!j,Q/0 # TYYv&-{;r   c                    V ^8  d   QhRRRR/# r   r   r   r   zT.Tuple[T.List[str], str]r   )r   s   "r   r   r      s      S -F r   c                   R pR.\        R4      3 FB  p\        VRRV .,           4      w  r4V'       d   VP                  R4      R	R
 R3u # W,          pKD  	  \        \        R4      RV .,           4      w  r4V'       d   V.R3# W,          p. V3# ) libllvm-libz-listz-nologor1   Nr   r   )rA   rO   r?   )r   
all_stderrr   rJ   rK   s   &    r   _get_implib_dllnamer      s    J *-.$SGY+L%LM	
 <<%b,d22
 / !)!4k7J!JKIFx~OJ
r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r      s      S -F r   c                l   R p\         P                  P                  4       pRVR&   \        \	        R4      RV .,           VR7      w  r4V'       d:   VP                  R4      pVP                  R4      pVP                  R4      pWVV R	3# W,          pR F  p\        \	        V4      R
RRV .,           4      w  r4V'       di   . p	VP                  R4       FK  p
RV
9  g   V
P                  R4      '       d   K#  V	P                  V
P                  ^R7      ^ ,          4       KM  	  V	R	3u # W,          pK  	  . V3# )r   1033VSLANGdumpbinz-exports)envr1   zFile Type: LIBRARYz	  SummaryNrY   rZ   r[   r   z.textr   )llvm-nmrW   )	r2   r=   copyrO   rA   r?   index
startswithr   )r   r   r   rJ   rK   linesstartendrW   rc   rd   s   &          r   _get_implib_exportsr      s&   J
**//
CCM )!4
K7P!PVYZIFT"01kk+&3%%OJ$Xb\_FV5E{5T &T U	FT*$(@(@djj!j4Q78 + 4<
   
r   c               $    V ^8  d   QhRRRRRR/# r   r   )r   s   "r   r   r      s!     < <c < < <r   c                   \        V 4      w  r#V'       g   \        . RORV4       \        V4       R# \        V 4      w  rCV'       g   \        . RORV4       \        V4       R# W$,          p\	        RP                  V4      R,           V4       R# )r   zdo not work or were not foundNr1   )r   r   r   )r   r   rW   )r   r8   r    r   r)   ra   )r   r   rc   rK   symbolss   &&   r   windows_symsr      st    #K0IF9;Z\]^;$[1JG79XZ[\;
FTYYv&-{;r   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r   rR   r   r   r   r   r   r   r   )r   s   "r   r   r     s1     *  * S * s *  * RU * Z^ * r   c                0   VeG   VR8X  d3   \         P                  P                  V4      '       d   \        W4       R # \	        V4       R # \
        P                  ! 4       '       g   \
        P                  ! 4       '       d   \        W4       R # \
        P                  ! 4       '       d   \        W4       R # \
        P                  ! 4       '       d   \        W4       R # \
        P                  ! 4       '       d   \        W4       R # \
        P                  ! 4       '       d   \        W4       R # \
        P                   ! 4       '       d@   \         P                  P                  V4      '       d   \        W4       R # \	        V4       R # \
        P"                  ! 4       '       d@   \         P                  P                  V4      '       d   \%        W4       R # \	        V4       R # \
        P&                  ! 4       '       d   \)        W4       R # \         P                  P+                  \,        4      '       gF   \.        P0                  ! R\2        ,           4       \5        \,        RRR7      ;_uu_ 4         R R R 4       \	        V4       R #   + '       g   i     L; i)Nwindowsz>Symbol extracting has not been implemented for this platform. r   r   r   )r2   r3   isfiler   r    r   is_linuxis_hurdrg   is_osxrx   
is_openbsdr}   
is_freebsdr   	is_netbsd
is_windows	is_cygwinr   is_sunosrl   r4   r   r   r6   r5   r   )rR   r   r   r   s   &&&&r   gen_symbolsr     s    "rww~~k'B'B2{#					 0 0 2 2*			*					[.					[.					[.					77>>+&&2 {#					77>>+&&1 {#					[.ww~~/00LL &(9: ; 'w?? @; @?s   .JJ	c                    V ^8  d   QhRRRR/# )r   r   r,   r   intr   )r   s   "r   r   r   7  s      k c r   c                   \         P                  V 4      p\        VP                  4      ^8w  d"   \	        R4       \
        P                  ! ^4       \        P                  P                  VP                  ^ ,          R4      p\        P                  P                  VR4      s
VP                  ^,          pVP                  ^,          pVP                  ^,          p\        W4WQP                  4       ^ # )   zGsymbolextractor.py <shared library file> <import library> <output file>zmeson-private$symbolextractor_tool_warning_printed)parser
parse_argsr`   r   printsysexitr2   r3   ra   r   r   r   )r   optionsprivdirlibfileimpfileoutfiles   &     r   runr   7  s    %G
7<<AWXggll7<<?O<GW.TUll1oGll1oGll1oG'+=+=>r   __main__:   NN)N)%__conditional_annotations__
__future__r   typingTr2   r   r   r   r   r   argparseArgumentParserr   add_argument__annotations__r5   r    r)   r8   rA   rL   rO   rg   rl   rx   r}   r   r   r   r   r   r   r   __name__r   argv)r   s   @r   <module>r      s    # "     ! 		 	 	"   ND|:  <   F#  & E 
			<6&<,<"<$<&04< * X zHHS" r   