+
    UBiU              
      V  a  0 t $ ^ RIHt ^ RIHtHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^RIHt ^RIHt ^RIHt ^RIHt ]P*                  '       d   ^ RItR R	 lt] ! R
 R4      4       tR R ltR R ltR R ltRRRRRR/tRR/tRRRR/tRR/tRRRR/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&RIR* R+ llt'RIR, R- llt(RIR. R/ llt)RIR0 R1 llt*R2 R3 lt+R4 R5 lt,R6 R7 lt-R8 R9 lt.R: R; lt/R< R= lt0R>R>R?R@RRRARARBRB/t1RC]2RD&    ! RE RF4      t3RG RH lt4R# )J    )annotations)	dataclassfieldN)	envconfig)mlog)	compilers)defaultsc                    V ^8  d   QhRRRR/# )   parserz'argparse.ArgumentParser'returnNone )formats   "A/usr/lib/python3.14/site-packages/mesonbuild/scripts/env2mfile.py__annotate__r      s     I I3 I I    c                   V P                  R RRR7       V P                  RRRR7       V P                  RRR	R
R7       V P                  RRRRR7       V P                  RRRRR7       V P                  RRRRR7       V P                  RRRRR7       V P                  RRRR7       V P                  RRRR7       V P                  RRRR7       V P                  RRRR7       V P                  RRR R7       V P                  R!R"R#R".R$R%7       R# )&z	--debarchNz"The dpkg architecture to generate.)defaulthelpz--gccsuffix z-A particular gcc version suffix if necessary.z-oToutfilez+The output file or directory (for Android).)requireddestr   z--crossF
store_truez"Generate a cross compilation file.)r   actionr   z--nativez#Generate a native compilation file.z	--androidz,Generate cross files for Android toolchains.z--use-for-buildzUse _FOR_BUILD envvars.z--systemz$Define system for cross compilation.z--subsystemz'Define subsystem for cross compilation.z--kernelz$Define kernel for cross compilation.z--cpuz!Define cpu for cross compilation.z--cpu-familyz(Define cpu family for cross compilation.z--endianlittlebigz(Define endianness for cross compilation.)r   choicesr   )add_argument)r   s   &r   add_argumentsr!      sr   
TA  C
rL  N
t)J  L
	5A  C

E,B  D
U<K  M
)56  8

DC  E
tF  H

DC  E
@  B
G  I

Huh>OG  Ir   c                     ] tR t^2t$ ]! ]R7      tR]R&   ]! ]R7      tR]R&   ]! ]R7      t	R]R&   ]! ]R7      t
R]R&   ]! ]R7      tR]R&   ]! ]R7      tR]R	&   R
tR]R&   R
tR]R&   R
tR]R&   R
tR]R&   R
tR]R&   R
tR]R&   RtR
# )MachineInfo)default_factoryzT.Dict[str, T.List[str]]r   binariesz&T.Dict[str, T.Union[str, T.List[str]]]
propertiescompile_args	link_argscmakeNzT.Optional[str]system	subsystemkernelcpu
cpu_familyendianr   )__name__
__module____qualname____firstlineno__r   dictr   __annotations__r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   __static_attributes__r   r   r   r#   r#   2   s    */*EI'E).t)DH&D9>t9TJ6T-24-HL*H*/*EI'E49$4OE1O"FO"!%I%"FO"C"&J&"FO"r   r#   c                    V ^8  d   QhRRRR/# )r   programstrr   T.List[str]r   )r   s   "r   r   r   M   s     8 8 8 8r   c                L   \         P                  P                  V 4      '       d   V .# \         P                  ! 4        FR  p\         P                  P	                  W4      p\         P
                  ! V\         P                  4      '       g   KO  V.u # 	  \        R V ,          4      h)z%s not found on $PATH)ospathisabsget_exec_pathjoinaccessX_OK
ValueError)r8   dfs   &  r   locate_pathrF   M   sq    	ww}}WyGGLL$99Q  3J   ,w6
77r   c               (    V ^8  d   QhRRRRRRRR/# )	r   ofilezT.TextIOnamer9   argszT.Union[str, T.List[str]]r   r   r   )r   s   "r   r   r   V   s*     	 	8 	3 	6O 	TX 	r   c                
   \        V4      ^ 8X  d   R# \        V\        4      '       d   VR,           V,           R,           pM1VR,           pVRP                  R V 4       4      ,          pVR,          pV P	                  V4       R# )r   Nz= ''
z = [z, c              3  B   "   T F  pR V,           R ,           x  K  	  R# 5i)'Nr   ).0is   & r   	<genexpr>"write_args_line.<locals>.<genexpr>]   s     6A#'C--s   z]
)len
isinstancer9   r@   write)rH   rI   rJ   ostrs   &&& r   write_args_linerW   V   sg    
4yA~$e|d"U*f}		6666	KKr   c                    V ^8  d   QhRRRR/# r   infosr#   r   r   r   )r   s   "r   r   r   a   s     !5 !5 !5 !5r   c                Z   \         P                  ! \        P                  P	                  R R4      4      p\         P                  ! \        P                  P	                  RR4      4      p\         P                  ! \        P                  P	                  RR4      4      p\         P                  ! \        P                  P	                  RR4      4      p\         P                  ! \        P                  P	                  RR4      4      p\         P                  ! \        P                  P	                  RR4      4      pW,           pW,           pW&,           p	W6,           p
W,           pW,           pWF,           pWV,           pV'       d   WpP
                  R&   V	'       d   WP                  R&   V'       d   WP
                  R&   V
'       d   WP                  R&   V'       d   WP
                  R	&   V'       d   WP                  R	&   V'       d   WP
                  R
&   V'       d   WP                  R
&   R# R# )CPPFLAGSr   CFLAGSCXXFLAGS	OBJCFLAGSOBJCXXFLAGSLDFLAGSccppobjcobjcppN)shlexsplitr<   environgetr'   r(   )rZ   cppflagscflagscxxflags	objcflagsobjcxxflagsldflagsc_argscpp_argsc_link_argscpp_link_args	objc_argsobjcpp_argsobjc_link_argsobjcpp_link_argss   &              r   get_args_from_envvarsrx   a   sv   {{2::>>*b9:H[["56F{{2::>>*b9:HBJJNN;;<I++bjjnn]B?@Kkk"**..B78GF"H"K&M$I(K(N","(3*$,5!!.%.6""0'28$$4! r   mips64elmips64i686x86powerpc64leppc64armhfarm7hlfhurdgnukfreebsdfreebsdc               $    V ^8  d   QhRRRRRR/# )r   special_caseszT.Mapping[str, str]rI   r9   r   r   )r   s   "r   r   r      s"     ) ))< )C )C )r   c                $    V P                  W4      # )zg
If name is a key in special_cases, replace it with the value, or otherwise
pass it through unchanged.
)ri   )r   rI   s   &&r   replace_special_casesr      s    
 T((r   c               $    V ^8  d   QhRRRRRR/# )r   rZ   r#   datazT.Dict[str, str]r   r   r   )r   s   "r   r   r      s'     
r 
rK 
r/? 
rD 
rr   c                @   R RRRRR/pRRRR	R
R/pV P                   R,          V P                  R&    V P                   R,          V P                  R&   W!R,          ,          V P                  R&   \        W1R,          4      V P                  R&   R#   \         d     LJi ; i)linuxLinuxr   kFreeBSDr   GNUarmarmv7lry   rz   r}   ppc64lerb   CMAKE_C_COMPILERrc   CMAKE_CXX_COMPILERDEB_HOST_ARCH_OSCMAKE_SYSTEM_NAMEDEB_HOST_GNU_CPUCMAKE_SYSTEM_PROCESSORN)r   r)   KeyErrorr   )rZ   r   system_name_mapsystem_processor_maps   &&  r   deb_detect_cmaker      s    ZOO!8Z=R[\&+ooc&:EKK"#,1OOE,B() (7<N7O'PEKK#$,ABV]oXp,qEKK()  s    B BBc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   rZ   r#   compilerstemszT.List[T.Tuple[str, str]]	host_archr9   	gccsuffixr   r   r   )r   s   "r   r   r      s3      { ;T ad qt y} r   c                    V F(  w  rEV R V V 2p \        V4      pWpP                  V&   K*  	  R#   \         d     K<  i ; i)-N)rF   r   rC   )rZ   r   r   r   langnamestemcompilernameps   &&&&    r   deb_compiler_lookupr      sQ    '#AdVI;7	L)A()OOH%	 (
  		s   1A A c                    V ^8  d   QhRRRR/# r   optionsT.Anyr   r#   r   )r   s   "r   r   r      s     > >U >{ >r   c                    V P                   R 8X  d   R.pMRRV P                   ,           .p\        P                  ! VR\        P                  R7      p\	        W 4      # )autozdpkg-architecturez-aT)universal_newlinesstderr)debarch
subprocesscheck_outputDEVNULL!dpkg_architecture_to_machine_info)r   cmdoutputs   &  r   detect_cross_debianliker      sR    & "#"D7??$:;$$ST,6,>,>@F,V==r   c               $    V ^8  d   QhRRRRRR/# )r   r   r9   r   r   r   r#   r   )r   s   "r   r   r      s&     J Jc JE Jk Jr   c                   / pV P                  R 4       F4  pVP                  4       pVR8X  d   K  VP                  R^4      w  rEWRV&   K6  	  VR,          p\        \        VR,          4      pTp\        \        VR,          4      p	\        \
        VR,          4      p
\        P                  VR,          \        \        VR,          4      4      pVR,          p. ROp\        4       p\        WWaP                  4       \        VP                  4      ^ 8X  d   \        R4       \        R	V,          4      VP                   R
&   \        RV,          4      VP                   R&   \        RV,          4      VP                   R&   \        RV,          4      VP                   R&    \        R4      VP                   R&   \#        W4       R F#  p \        V: RV: 24      VP                   V&   K%  	  R F&  w  pp \        V: RV: 24      VP                   V&   K(  	  R F&  w  pp \        V: RV: 24      VP                  V&   K(  	   \        R4      VP                   R&   W~n        Wn        Wn        Wn        Wn        Wn        \3        V4       V#   \$         d     Li ; i  \$         d     K  i ; i  \$         d     K  i ; i  \$         d     K  i ; i  \$         d     Li ; i)
r   =DEB_HOST_GNU_TYPEr   r   DEB_HOST_ARCHDEB_HOST_ARCH_ENDIANz$Warning: no compilers were detected.z%s-ararz%s-stripstripz
%s-objcopyobjcopyz%s-ldldr)   r   zcups-config))rb   gcc)rc   zg++)rd   gobjc)re   zgobjc++)zg-ir-annotation-toolzg-ir-compilerzg-ir-doc-toolzg-ir-generatezg-ir-inspectzg-ir-scannerz
pkg-configvapigen))exe_wrapperzcross-exe-wrapper))valavalac)rg   r   r   
deb_os_mapdeb_kernel_mapdeb_cpu_family_mapdeb_arch_cpu_mapri   deb_cpu_mapr#   r   r   rS   r   printrF   r%   r   rC   r*   r+   r,   r.   r-   r/   rx   )r   r   r   linekvr   host_oshost_subsystemhost_kernelhost_cpu_familyhost_cpuhost_endianr   rZ   toolexes   &&               r   r   r      s   DT"zz|2:zz#q!Q # ()I#J5G0HIGN'=O8PQK+,>EW@XYO##D$9$9+tL^G_$`bH-.K,M MEi9J9JK
5??q 45&w':;ENN4)*y*@AENN7 +L9,D EENN9&w':;ENN4"-g"6w%		#.)T/J#KENN4 		c	#.)S/I#JENN4 		c	$/9c0J$KEOOD!	(3M(B}% L$OL&IL% LU    		  		  		  sZ   #J J2J.K K JJJ+*J+.J=<J= KKK K c               (    V ^8  d   QhRRRRRRRR/# )	r   rZ   r#   	ofilenamer9   write_system_infoboolr   r   r   )r   s   "r   r   r     s)     0' 0'k 0'c 0'd 0'W[ 0'r   c           
        VR ,           p\        VRRR7      ;_uu_ 4       pVP                  R4       VP                  R4       \        V P                  P	                  4       4       F"  pV P                  V,          p\        WEV4       K$  	  VP                  R4       VP                  R4       \        V P                  P	                  4       4       F"  pV P                  V,          p\        WGV4       K$  	  VP                  R4       VP                  R4       \        \        V P                  P	                  4       4      P                  \        V P                  P	                  4       4      4      4      p	V	P                  4        V	 Fm  p
WP                  9   d%   \        WJR	,           V P                  V
,          4       WP                  9   g   KI  \        WJR
,           V P                  V
,          4       Ko  	  VP                  R4       VP                  R4       V P                  P                  4        F  w  r\        WKV4       K  	  VP                  R4       V P                  '       dR   VP                  R4       V P                  P                  4        F  w  r\        WKV4       K  	  VP                  R4       V'       d   VP                  R4       VP                  RV P                    R24       VP                  RV P"                   R24       VP                  RV P$                   R24       VP                  RV P&                   R24       V P(                  '       d    VP                  RV P(                   R24       V P*                  '       d    VP                  RV P*                   R24       RRR4       \,        P.                  ! W14       R#   + '       g   i     L(; i)~wutf-8encoding[binaries]
z# Compilers
r   z# Other binaries
z[built-in options]
_args
_link_argsz[properties]
z	[cmake]

z[host_machine]
cpu = 'rL   cpu_family = 'z
endian = 'z
system = 'zsubsystem = 'z
kernel = 'N)openrU   sortedr   keysrW   r%   listsetr'   unionr(   sortr&   itemsr)   r-   r.   r/   r*   r+   r,   r<   replace)rZ   r   r   tmpfilenamerH   r   compilerexenamer   	all_langslangr   r   s   &&&          r   write_machine_filer     s   c/K	k3	1	1UN#O$u3356Hx0HEX6 7 	D()enn1134G..)CEC0 5 	D*+U//4467==c%//BVBVBX>YZ[	D)))g~u7I7I$7OP&l':EOOD<QR	 
 	D$%$$**,DAEa( -D;;;KK&))+!, ,KKKK*+KK'%))C01KK.)9)9(:#>?KK*U\\N#67KK*U\\N#67mEOO+<C@A|||jc:;Y 
2\ JJ{&] 
2	1s-   F+OBO,AOBO$0OOO$	c               $    V ^8  d   QhRRRRRR/# )r   r   r9   envvar_suffixr   z!T.Tuple[T.List[str], T.List[str]]r   )r   s   "r   r   r   D  s"     / / /C /Qr /r   c                t   . pV \         P                  9   dQ   \        P                  ! \        P
                  P                  \         P                  V ,          V,           R 4      4      pV \         P                  9   dX   \        \        P                  ! \        P
                  P                  RV,           R 4      4      4      p\        V4      V,           pMTp. pV \         P                  9   dC   V\        P                  ! \        P
                  P                  RV,           R 4      4      ,          pWR,          pWE3# )r   r\   ra   )r   CFLAGS_MAPPINGrf   rg   r<   rh   ri   LANGUAGES_USING_CPPFLAGStupler   LANGUAGES_USING_LDFLAGS)r   r   r'   rj   lang_compile_argslang_link_argss   &&    r   !detect_language_args_from_envvarsr  D  s    L9+++{{2::>>)2J2J82TWd2dfh#ij9555RZZ^^J4NPR%STU N\9(N9444%++bjjnnY5NPR&STT"N..r   c                    V ^8  d   QhRRRR/# )r   r   r9   r   r#   r   )r   s   "r   r   r   S  s       k r   c                   \        4       p\        P                  P                  4        F  w  r#\        P
                  P                  W0,           4      pV'       g   K4  \        P                  P                  V4      '       d   V.pM\        P                  ! V4      pWQP                  V&   \        W 4      w  rgV'       d   WaP                  V&   V'       g   K  WqP                  V&   K  	  V# N)r#   r   ENV_VAR_COMPILER_MAPr   r<   rh   ri   r=   existsrf   rg   r   r  r'   r(   )r   rZ   r   
envvarnamecompilerstrr   r   r   s   &       r   detect_compilers_from_envvarsr	  S  s    ME ) > > D D FjjnnZ%?@77>>+&&#}H{{;/H$,!,Mh,f)+<x(>(6OOH% !G Lr   c               $    V ^8  d   QhRRRRRR/# r   rZ   r#   r   r9   r   r   r   )r   s   "r   r   r   e  s"     : : :C :QU :r   c                    \         P                  P                  4        FY  w  r#W1,           p\        P                  P                  V4      pV'       g   K6  \        P                  ! V4      V P                  V&   K[  	  R # r  )	r   ENV_VAR_TOOL_MAPr   r<   rh   ri   rf   rg   r%   )rZ   r   binnameenvvar_baseenvvarbinstrs   &&    r   detect_binaries_from_envvarsr  e  sU     ) : : @ @ B,'6&+kk&&9ENN7#	 !Cr   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r   l  s"     + ++ +c +SW +r   c                    \         P                  P                  R V,           4      pVe   W P                  R&   \         P                  P                  RV,           4      pVe   W P                  R&   R# R# )PKG_CONFIG_LIBDIRNpkg_config_libdirPKG_CONFIG_SYSROOT_DIRsys_root)r<   rh   ri   r&   )rZ   r   vars   && r   detect_properties_from_envvarsr  l  s^    
**..,}<
=C
03,-
**..1MA
BC
'*$ r   c               $    V ^8  d   QhRRRRRR/# )r   rZ   r#   r   r   r   r   r   )r   s   "r   r   r   t  s!     # #{ #U #t #r   c           
         R Fe  p\        W4      pV'       gD   \        P                  ! RV RVP                  RR4       R24       \        P
                  ! ^4       \        WV4       Kg  	  R# )r*   zCross property "z" missing, set it with --_r   .N)r*   r+   r,   r-   r.   r/   )getattrr   errorr   sysexitsetattr)rZ   r   optnamer   s   &&  r   detect_cross_systemr%  t  s[    SG%JJ)'2KGOO\_adLeKffghiHHQK" Tr   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r   |  s     
 
e 
 
r   c                    V P                   '       d   \        R 4       \        V 4      pM \        R4       \        4       p\	        W4       \        V4       \        V4       V# )z2Detecting cross environment via dpkg-architecture.z6Detecting cross environment via environment variables.)r   r   r   r	  r%  r  r  )r   rZ   s   & r   detect_cross_envr(  |  sL    BC'0FG-/E+ '"5)Lr   c               (    V ^8  d   QhRRRRRRRR/# )	r   rZ   r#   r   r9   	exe_namesr:   r   r   r   )r   s   "r   r   r     s)      ; # + Z^ r   c                   WP                   9   d   R # V Fm  p\        P                  ! V4      pV'       g   K#  \        V4      w  rVV.V P                   V&   V'       d   WPP                  V&   V'       d   W`P
                  V&    R # 	  R # r  )r   shutilwhichr  r'   r(   )rZ   r   r*  exe_namelookup	compflags	linkflagss   &&&    r   add_compiler_if_missingr2    sm    ??"h'@J	%+H!+4x((1OOH% r   c                    V ^8  d   QhRRRR/# rY   r   )r   s   "r   r   r     s     7 7; 74 7r   c                    \         P                  ! 4        F(  w  rV\        P                  9  d   K  \	        WV4       K*  	  R # r  )compiler_namesr   r   r  r2  )rZ   r   exess   &  r   detect_missing_native_compilersr7    s2    (..099996 1r   c                    V ^8  d   QhRRRR/# rY   r   )r   s   "r   r   r     s     - -+ -$ -r   c                    \        \        P                  P                  4       4       FE  pWP                  9   d   K  \
        P                  ! V4      pV'       g   K5  V.V P                  V&   KG  	  R # r  )r   r   r  r   r%   r,  r-  )rZ   toolnamer   s   &  r   detect_missing_native_binariesr;    sP    955::<=~~%ll8$3(+uENN8$ >r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r     s      u  r   c                    V P                   '       d   \        P                  ! R 4       RpMRp\        V4      p\	        V4       \        W!4       \        V4       \        W!4       V# )zUUsing _FOR_BUILD envvars for detection (native file for use during cross compilation)
_FOR_BUILDr   )use_for_buildr   logr	  r7  r  r;  r  )r   esuffixrZ   s   &  r   detect_native_envrB    sT    hi)'2E#E* 0"5)"52Lr   aarch64armv7ar   x86_64riscv64zdict[str, str]ANDROID_CPU_TO_MESON_CPU_FAMILYc                  F    ] tR tRtR R ltR R ltR R ltR R	 ltR
tR# )AndroidDetectori  c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   AndroidDetector.__annotate__  s     4 4 4r   c                	   ^ RI pVP                  4       P                  4       V n         Wn        V P                   R8X  d   RV n        RV n        RV n        MdV P                   R8X  d   RV n        RV n        RV n        M=V P                   R	8X  d   R
V n        RV n        RV n        M\        P                  ! R4       \        P                  ! VP                  4      V n        R# )r   Nwindowszwindows-X86_64z.cmdz.exedarwinzdarwin-x86_64r   r   zlinux-x86_64zKAndroid lookup only supported on Linux, Windows and macOS. Patches welcome.)platformr*   lowerr   build_machine_idcommand_suffix
exe_suffixr!  r"  pathlibPathr   outdir)selfr   rO  s   && r   __init__AndroidDetector.__init__  s     )//1==I%$4D!"(D$DO]]h&$3D!"$D DO]]g%$2D!"$D DOHHbcll7??3r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   rK    s     ! ! !r   c                	   \         P                  P                  4       pV P                  R 8X  d   VR,          pMLV P                  R8X  d   VR,          pM1V P                  R8X  d   VR,          pM\        P
                  ! R4       XP                  4       '       g   \        P
                  ! RV R24       VR	,          pVP                  4       '       g   \        P
                  ! R
V 24       W0n        R# )rM  zAppData/Local/Android/SdkrN  zLibrary/Android/Sdkr   zAndroid/SdkzUnsupported platform.z%Could not locate Android SDK root in r  ndkz Could not locate Android ndk in N)rT  rU  homerO  r!  r"  is_dirndk_root)rW  r^  sdk_rootr`  s   &   r   detect_android_sdk_root'AndroidDetector.detect_android_sdk_root  s    ||  "==I%99H]]h&33H]]g%m+HHH,-  HH<XJaHIe#  HH7zBC r   c                   V ^8  d   QhRR/# r[  r   )r   s   "r   r   rK    s     " "4 "r   c                	0   V P                  4        V P                  P                  4       '       g   V P                  P                  4        V P                  P                  R 4       F,  pVP                  4       '       g   K  V P                  V4       K.  	  R# )*N)rb  rV  r_  mkdirr`  globprocess_ndk)rW  r]  s   & r   detect_toolchains!AndroidDetector.detect_toolchains  sf    $$&{{!!##KK==%%c*C::<<S! +r   c                    V ^8  d   QhRRRR/# )r   r]  zpathlib.Pathr   r   r   )r   s   "r   r   rK    s     $3 $3| $3 $3r   c                	.   VP                   R,          pVRV P                   2,          pVR,          pVP                  4       '       g   \        P                  ! RV R24       VRV P
                   2,          pVP                  4       '       g   \        P                  ! RV R24       \        V4      P                  RR4      pVR	V P
                   2,          pVP                  4       '       g   \        P                  ! R
V R24       \        V4      P                  RR4      pVP                  R4       EF  p	V	P                   R,          P                  R4      p
\        V
4      ^8X  g   Q hV
^ ,          pV
^,          R8X  g   Q hV
^,          p\        V	4      P                  RR4      pVRR  pWP                  ,          pWP                  ,          pRV RV RV R2p\        \        P                  ! V P                   P"                  4      V,          RRR7      ;_uu_ 4       pVP%                  R4       VP%                  RV R24       VP%                  RV R24       VP%                  RV R24       VP%                  RV R24       VP%                  R4       VP%                  R4       VP%                  R\&        V,           R24       VP%                  RV R24       VP%                  R4       RRR4       EK  	  R#   + '       g   i     EK  ; i)!   ztoolchains/llvm/prebuilt/binzCould not detect toolchain in r  zllvm-arzCould not detect llvm-ar in \/z
llvm-stripzCould not detect llvm-strip n z	*-clang++r   r   Nzandroid-z
-cross.txtr   r   r   r   zc = 'rL   zcpp = 'zar = 'z	strip = 'z
[host_machine]
zsystem = 'android'
r   r   zendian = 'little'
)partsrQ  r_  r!  r"  rS  is_filer9   r   rh  rg   rS   rR  r   rT  rU  r   r   rU   rG  )rW  r]  ndk_versiontoolchain_rootbindirar_pathar_str
strip_path	strip_strr   rt  r-   android_versioncpp_compiler_strc_compiler_strcrossfile_namerH   s   &&               r   ri  AndroidDetector.process_ndk  s   iim!:4;P;P:QRR%'}}HH5n5EQGHWT__$566  HH3N3C1EFW%%dC0
4??*;<<
!!##HH5n5EQGH
O++D#6	K0HNN2&,,S1Eu:?"?(C8w&&&#AhO"8}44T3?-cr2N 3 33111N'}Ao5FauJWNgll4<<#7#78>I3Y`aaejN+eN#3378g&6%7s;<fVHC01i	{#670123n-LS-Q,RRUVWgcU#./12 ba 1 baas   %CLL)rQ  rR  rS  r`  r   rV  rO  N)	r0   r1   r2   r3   rX  rb  rj  ri  r6   r   r   r   rI  rI    s    4*!""$3 $3r   rI  c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r     s       4 r   c                4   V P                   '       d)   V P                  '       d   \        P                  ! R 4       V P                   '       g   V P                  '       d)   V P                  '       d   \        P                  ! R4       V P                   '       g;   V P                  '       g)   V P                  '       g   \        P                  ! R4       \
        P                  ! R4       V P                   pV'       dN   V P                  '       d   \        P                  ! R4       \        V 4      pRp\        W P                  V4       R# V P                  f&   \        V 4      pRp\        W P                  V4       R# \        V 4      pVP                  4        R# )z:You can only specify either --cross or --native, not both.z>You can not specify either --cross or --native with --android.z0You must specify --cross, --native or --android.z9This functionality is experimental and subject to change.z:--use-for-build only makes sense for --native, not --crossTNF)crossnativer!  r"  androidr   noticer?  r(  r   r   rB  rI  rj  )r   detect_crossrZ   r   ads   &    r   runr    s    }}}MNW___QR===CDKKKL==L   HHQR ) 5//3DE		 !'*!5//3DEW%
r   )r   )5__conditional_annotations__
__future__r   dataclassesr   r   r!  r<   r   r,  rT  rf   typingTr   r   r   r   compilers.detectr	   r5  TYPE_CHECKINGargparser!   r#   rF   rW   rx   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r%  r(  r2  r7  r;  rB  rG  r5   rI  r  )r  s   @r   <module>r     sS   # " ( " "      ! 9???I8 # # #48	!5J 
E7  Y  7 E
 	
E
)
r>JX0'd/$:+#
7- ye
Ehy3  T3 T3nr   