
    kj                         S SK r S SKrS SKrS SKr " S S\ R                  5      r " S S\ R                  5      r " S S\ R                  5      r " S S	5      rg)
    Nc                   z    \ rS rSr\R
                  " 5       r\R
                  " 5       r\R
                  " 5       rSr	g)HostArchitecture    N)
__name__
__module____qualname____firstlineno__enumautox86_64riscv64AArch64__static_attributes__r       J/mnt/mint/home/seanl/mnt/public/Repos/ladybird/Meta/Utils/host_platform.pyr   r      s#    YY[FiikGiikGr   r   c                       \ rS rSr\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r	Sr
g)
HostSystem   r   N)r   r   r	   r
   r   r   LinuxmacOSWindowsBSDr   r   r   r   r   r      s.    IIKEIIKEiikG
))+Cr   r   c                       \ rS rSr\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r\R
                  " 5       r	\
S\SS 4S j5       rS rSrg)GUIFramework   guireturnc                 H     X   $ ! [          a    [        SU< 35      S ef = f)NzUnknown GUIFramework: )KeyError
ValueError)clsr   s     r   from_stringGUIFramework.from_string   s5    	I8O 	I5cW=>DH	Is    !c                     U R                   $ N)nameselfs    r   __str__GUIFramework.__str__'   s    yyr   r   N)r   r   r	   r
   r   r   QtAppKitGtkAndroidclassmethodstrr#   r*   r   r   r   r   r   r      sW    	BYY[F
))+CiikGIc In I Ir   r   c                   ~    \ rS rSrS rS\\\4   4S jrS\4S jrS\4S jr	S\4S jr
S\\   4S jrS\4S	 jrS
rg)Platform+   c                    [         R                  " 5       U l        U R                  S:X  a  [        R                  U l        OU R                  S:X  a  [        R
                  U l        OU R                  S:X  a  [        R                  U l        OaU R                  S;   a  [        R                  U l        O;[        SU R                   3[        R                  S9  [        R                  " S5        [         R                  " 5       R                  5       U l        U R                  S;   a  [        R                   U l        g U R                  S	:X  a  [        R$                  U l        g U R                  S
;   a  [        R&                  U l        g [        SU R                   3[        R                  S9  [        R                  " S5        g )Nr   Darwinr   )FreeBSDOpenBSDNetBSD	DragonFlyzUnsupported host system )file   )r   amd64r   )aarch64arm64zUnsupported host architecture )platformsystemr   r   host_systemr   r   r   printsysstderrexitmachinelowerarchitecturer   r   host_architecturer   r   r(   s    r   __init__Platform.__init__,   s4   oo';;)#)11D[[H$)//D[[G#)//D[[II)~~D,T[[M:LHHQK$,,.446 33%5%<%<D")+%5%=%=D""66%5%=%=D"243D3D2EFSZZXHHQKr   r   c                     [         R                  R                  SS 5      n[         R                  R                  SS 5      nU(       a
  U(       a  X4$ U R                  [        R
                  :X  a  gg)NCCCXX)clang-clrP   )cczc++)osenvirongetrB   r   r   )r)   rQ   cxxs      r   default_compilerPlatform.default_compilerE   sQ    ZZ^^D$'jjnnUD)#9z111+r   c                 b    U R                   [        R                  [        R                  4;   a  gg)Ngdblldb)rB   r   r   r   r(   s    r   default_debuggerPlatform.default_debuggerO   s%    
 0 0*..AAr   c                     U R                   [        R                  :X  a  gU R                   [        R                  :X  a  gg)Nzllvm-symbolizeratos	addr2line)rB   r   r   r   r(   s    r   default_symbolizerPlatform.default_symbolizerT   s3    z111$z///r   c                 r    U R                   [        R                  :X  a  g[        R                  " 5       u  pU$ )N )rB   r   r   r@   libc_ver)r)   libc_s      r   	libc_namePlatform.libc_name[   s.    z111##%r   c                 <   U R                   [        R                  :X  a   [        R                  [        R
                  /$ U R                   [        R                  [        R                  4;   a   [        R                  [        R                  /$ [        R                  /$ )zi
List of valid GUI frameworks based on target platform.
Keep in sync with Meta/CMake/gui_framework.cmake
)	rB   r   r   r   r,   r-   r   r   r.   r(   s    r   valid_gui_frameworksPlatform.valid_gui_frameworksb   sl    
 z/// OO\%8%899
 0 0*..AA OO\%5%566  r   c                 ~    U R                   [        R                  :X  a  [        R                  $ [        R
                  $ r&   )rB   r   r   r   r-   r,   r(   s    r   default_gui_frameworkPlatform.default_gui_frameworkm   s,    z///&&&r   )rI   rJ   rB   rA   N)r   r   r	   r
   rK   tupler1   rV   r[   r`   rg   listr   rj   rm   r   r   r   r   r3   r3   +   s\    2%S/ # 
C 3 	!d<&8 	!| r   r3   )	r   rR   r@   rD   IntEnumr   r   r   r3   r   r   r   <module>rr      sO     	  
t||  4<< $E Er   