
    jH(                        S SK Jr  S SKJr  SSKJr  SSKJr  SSKJ	r	J
r
  SSKJr  S S	KrS S	KrS S	KrS S
KJr  S SKJr  \R,                  (       a  SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r " S S5      r g	)    )annotations)Path   )CMakeTraceParser   )CMakeSkipCompilerTest)language_mapcmake_get_generator_args)mlogN)Enum)dedent)CMakeExecutor)Environment)Compiler)MachineChoicec                      \ rS rSrSrSrSrg)CMakeExecScope   
subproject
dependency N)__name__
__module____qualname____firstlineno__
SUBPROJECT
DEPENDENCY__static_attributes__r       {/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Build/vcpkg/downloads/tools/meson-1.9.0-d1fcc2/mesonbuild/cmake/toolchain.pyr   r      s    JJr   r   c                      \ rS rSrSSS jjrSS jrSS jr\SS j5       rSS jr	SS jr
SS	 jr\SS
 j5       rSS jrSrg)CMakeToolchain   Nc                ^   X l         Xl        X0l        X@l        X`l        XPl        U R
                  R                  5       U l        US-  U l        US-  U l        U R                   R                  U R                     U l
        U R                   R                  U R                     U l        U R                   R                  R                  U R                     U l        U R                   R                  U R                     U l        U R                   R                  R                  U R                     U l        U R#                  5       U l        U R$                  R'                  U R                  R)                  5       5        U R                  R+                  5       nU[,        R.                  :H  U l        U[,        R2                  :X  a%  U R                  [4        R6                  :X  a  SU l        U R                  R9                  5       (       d  SU l        U R                  R;                  5       (       d   eg )NzCMakeMesonToolchainFile.cmakezCMakeCache.txtTF)envcmakebinfor_machine
exec_scopepreload_file	build_dirresolvetoolchain_filecmcache_filemachinesminfo
propertiescoredata	compilers	cmakevarscmake_cache
cmakestateget_defaults	variablesupdateget_variablesget_cmake_skip_compiler_testr   ALWAYS
skip_checkDEP_ONLYr   r   get_cmake_defaultsis_absolute)selfr&   r%   r'   r(   r*   r)   skip_statuss           r    __init__CMakeToolchain.__init__   s    &$("//1'*II%(88XX&&t'7'78
((--d.>.>?**44T5E5EF++D,<,<=((++778H8HI**,dnn::<= ooBBD%)>)E)EE/888T__P^PiPi=i"DO1133#DO""..0000r   c                   U R                   R                  R                  5       (       d#  U R                   R                  R                  SS9  U R                   R	                  U R                  5       SS9  U R                  R	                  U R                  5       SS9  [        R                  " U R                   R                  5       5        U R                   $ )NT)parentsutf-8encoding)r,   parentexistsmkdir
write_textgenerater-   generate_cacher   cmd_ci_includeas_posix)r@   s    r    writeCMakeToolchain.write:   s    ""))0022&&,,T,:&&t}}&I$$T%8%8%:W$MD//88:;"""r   c                    SU R                   R                  5       -   /nU R                  b!  USU R                  R                  5       -   /-  nU$ )N-DCMAKE_TOOLCHAIN_FILE=z-DMESON_PRELOAD_FILE=)r,   rP   r)   )r@   argss     r    get_cmake_argsCMakeToolchain.get_cmake_argsB   sQ    )D,?,?,H,H,JJK(,t/@/@/I/I/KKLLDr   c                z    SnU R                  5        H$  u  p#USU-   -  nU H  nUSU S3-  nM     US-  nM&     U$ )N zset(z ""z)
)items)varsreskeyvalueis        r    _print_varsCMakeToolchain._print_varsH   sS    **,JC6C<CA3ay  5LC	 '
 
r   c                j   [        S5      nU R                  R                  5        H4  u  p#U Vs/ s H  oDR                  SS5      PM     snU R                  U'   M6     U R                  (       aP  U R                  5         US-  nU R                   H&  u  pVUSU S3-  nXR                  U5      -  nUS-  nM(     US-  nUS-  nXR                  U R                  5      -  nUS-  nU R                  R                  5       nUb+  U[        SR                  UR                  5       5      5      -  nU$ s  snf )	Na              ######################################
            ###  AUTOMATICALLY GENERATED FILE  ###
            ######################################

            # This file was generated from the configuration in the
            # relevant meson machine file. See the meson documentation
            # https://mesonbuild.com/Machine-files.html for more information

            if(DEFINED MESON_PRELOAD_FILE)
                include("${MESON_PRELOAD_FILE}")
            endif()

        \/z!# CMake compiler state variables
z# -- Variables for language 
z# Variables from meson
zr
                # Load the CMake toolchain file specified by the user
                include("{}")

            )r   r7   r[   replacer<   update_cmake_compiler_stater5   ra   r0   get_cmake_toolchain_fileformatrP   )r@   r]   r^   r_   xlangr\   	user_files           r    rM   CMakeToolchain.generateR   s<       ....0JCAF"GA99T3#7"GDNN3 1 ??,,.77C"oo
5dV2>>''--t . 4KC 	))//t OO<<>	 6  y))+,	. .C 
5 #Hs   D0c           	         U R                   (       d  gSnU R                  R                  R                  5        H5  u  p#X SUR                   SSR                  UR                  5       S3-  nM7     U$ )NrY   :=;rf   )r<   r5   r4   r[   typejoinr_   )r@   r]   namevs       r    rN   CMakeToolchain.generate_cache   sb    2288:GDV1QVVHAchhqww&7%8;;C ;
r   c                Z   0 nU R                   R                  5       (       d  U$ SSSSSS.nU R                  R                  U R                  S9(       aX  UR                  U R                  R                  U R                  R                  5      /US'   U R                  R                  /US	'   U R                  R                  (       a  S
OS/US'   U R                   R                  5       nU(       a  U/US'   SS jnU R                  R                  5        GH  u  pV[        R
                  " US 5      nU(       d  M&  SR                  U5      nUR                  5       n	U	(       d  MP  [!        U	5      S:  a/  U R#                  XiS   5      (       d  U" U	S   5      /XS-   '   U	SS  n	U" U	S   5      U	S'   XUS-   '   UR%                  5       S:X  a  UR'                  5       US'   UR)                  S5      (       d  M  UR%                  5       R)                  S5      (       d  GM	  S/X S3'   GM     U$ )NAndroidLinuxWindowsFreeBSDDarwin)androidlinuxwindowsfreebsddarwin)when_building_forCMAKE_SYSTEM_NAMECMAKE_SYSTEM_PROCESSOR84CMAKE_SIZEOF_VOID_PCMAKE_SYSROOTc                |    [        U 5      R                  5       (       a  U $ [        R                  " U 5      nUc  U $ U$ N)r   r?   shutilwhich)exeps     r    make_abs-CMakeToolchain.get_defaults.<locals>.make_abs   s7    Cy$$&&
S!Ay
Hr   z	CMAKE_{}_r   r   r   COMPILER_LAUNCHERCOMPILERzclang-clCMAKE_LINKERobjcclangz-D__STDC__=1FLAGS)r   strreturnr   )r0   r>   r%   is_cross_buildr'   getr/   system
cpu_family	is_64_bitget_sys_rootr2   r[   r	   rj   get_exelistlenis_cmdline_optionget_idget_linker_exelist
startswith)
r@   defaults
SYSTEM_MAPsys_rootr   rl   comp_objlanguageprefixexe_lists
             r    r6   CMakeToolchain.get_defaults   s   -/ 1133O !  (

 88""T5E5E"F-7^^DJJ<M<MtzzO`O`-a,bH()26**2G2G1HH-.26**2F2F3C*P&'??//1)1
H_%	 #nn224ND#''d3H ''1F++-H8}!$*@*@TU;*W*W:B8A;:O9P"556#AB<"8A;/HQK,4Vj() J.+3+F+F+H(v&&8??+<+G+G+P+P.<-=85)*+ 5. r   c                    U R                  5       S:X  a  UR                  S5      $ [        R                  R	                  U R                  5       5      S:X  a  US;   a  gUR                  S5      $ )Nmsvc)re   -zig>   arccrclibranlibdlltoolobjcopyc++Tr   )get_argument_syntaxr   ospathbasenameget_exe)compilerargs     r    r    CMakeToolchain.is_cmdline_option   sd    '')V3>>),,ww 0 0 23u<  II  BI>>#&&r   c                   U R                   R                  R                  U R                  R	                  5       5      (       a  g [
        R                  " S5        [        U R                  R	                  5       5      nU Vs/ s H$  o"[        ;   d  M  [        R                  " U5      PM&     nn[        SSR                  U5       S35      n[        U R                  R                  5      S-  nUR                  SSS9  US-  nUR!                  US	S
9  US-  nUR!                  ["        R%                  U R&                  5      S	S
9  [)        U R*                  R-                  5       XPR                  5      nU R*                  R/                  SUR1                  5       S9  / n	XR3                  5       -  n	U	[5        U R                  5      -  n	U	SUR7                  5        3S/-  n	U R*                  R9                  XSS9u  pnU
S:w  a  [
        R:                  " S5        [
        R                  " SU
 35        UR=                  S5       H*  n[
        R                  " SUR?                  5        35        M,     UR=                  S5       H*  n[
        R                  " SUR?                  5        35        M,     g URA                  U5        0 URB                  EU R                   l"        URF                  RI                  5        VVs0 s H  u  pURJ                  U_M     nnnU Hf  n[        R                  " UURM                  5       5      nSU S3nURO                  U0 5      nS/USU S3'   U R                   RQ                  UU5        Mh     g s  snf s  snnf )NzBCMake Toolchain: Calling CMake once to generate the compiler statezO
            cmake_minimum_required(VERSION 3.10)
            project(CompInfo  z
)
        __CMake_compiler_info__T)rE   exist_okzCMakeLists.txtrF   rG   z!CMakeMesonTempToolchainFile.cmakeF)print_cmoutalways_capture_stderrrT   .)r*   disable_cacher   z:CMake Toolchain: Failed to determine CMake compilers statez -- return code: rf   z -- stdout: z -- stderr: CMakezCompiler.cmake1CMAKE__COMPILER_FORCED))r5   	languages
issupersetr2   keysr   debuglistr	   r   r   rt   r   r%   scratch_dirrK   rL   r"   ra   r7   r   r&   versionset_exec_moderequires_stderr
trace_argsr
   rP   callwarningsplitrstripparsecacher4   vars_by_filer[   ru   upper
setdefaultr8   )r@   r   rk   lang_idscmake_contentr*   
cmake_filetemp_toolchain_filetrace
cmake_argsr   
raw_stdout	raw_tracelinekrv   r   rl   
lang_cmake	file_namer\   s                        r    rh   *CMakeToolchain.update_cmake_compiler_state   s   ??$$//0C0C0EFF 	

WX,,./	1:PA<>O'L$$Q'P $!hhx01 2	  
 --.1JJ	t4!11
mg> (*MM&&~'A'A$..'Q\c&d !!6!6!8)XXN##UMbMbMd#e
&&((
.txx88
01D1M1M1O0PQSVWW
$(MM$6$6zfj$6$k!	7LLUVJJ*2$/0"((.

\$++-9: /!-

\$++-9: . 	I&5o#050B0B0H0H0JK0Jfq	0JKD%))$

=J
|>:I**9b9D;>%D6*%567OO""4. O QJ Ls   NN;N	)r*   r&   r5   r3   r-   r2   r%   r(   r'   r/   r)   r0   r<   r,   r7   r   )r&   z'CMakeExecutor'r%   z'Environment'r'   r   r(   r   r*   r   r)   zT.Optional[Path]r   None)r   r   )r   zT.List[str])r\   T.Dict[str, T.List[str]]r   r   )r   r   )r   r   )r   z
'Compiler'r   r   r   bool)r   r   )r   r   r   r   rB   rQ   rV   staticmethodra   rM   rN   r6   r   rh   r   r   r   r    r"   r"      sO    1:#  ,\?B ' '4/r   r"   )!
__future__r   pathlibr   traceparserr   	envconfigr   commonr	   r
   rY   r   os.pathr   r   typingTenumr   textwrapr   TYPE_CHECKINGexecutorr   environmentr   r2   r   mesonlibr   r   r"   r   r   r    <module>r      sS    #  ) - :      ??')$(T k/ k/r   