
    8SjM                         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       F/mnt/mint/home/seanl/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\	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Androidclassmethodstrr#   r*   r   r   r   r   r   r      sL    	BYY[F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-clrO   )cczc++)osenvirongetrA   r   r   )r)   rP   cxxs      r   default_compilerPlatform.default_compilerD   sQ    ZZ^^D$'jjnnUD)#9z111+r   c                 b    U R                   [        R                  [        R                  4;   a  gg)Ngdblldb)rA   r   r   r   r(   s    r   default_debuggerPlatform.default_debuggerN   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)rA   r   r   r   r(   s    r   default_symbolizerPlatform.default_symbolizerS   s3    z111$z///r   c                 r    U R                   [        R                  :X  a  g[        R                  " 5       u  pU$ )N )rA   r   r   r?   libc_ver)r)   libc_s      r   	libc_namePlatform.libc_nameZ   s.    z111##%r   c                     U R                   [        R                  :X  a   [        R                  [        R
                  /$ [        R                  /$ )zi
List of valid GUI frameworks based on target platform.
Keep in sync with Meta/CMake/gui_framework.cmake
)rA   r   r   r   r,   r-   r(   s    r   valid_gui_frameworksPlatform.valid_gui_frameworksa   s:    
 z/// OO\%8%899  r   c                 ~    U R                   [        R                  :X  a  [        R                  $ [        R
                  $ r&   )rA   r   r   r   r-   r,   r(   s    r   default_gui_frameworkPlatform.default_gui_frameworkj   s,    z///&&&r   )rH   rI   rA   r@   N)r   r   r	   r
   rJ   tupler0   rU   rZ   r_   rf   listr   ri   rl   r   r   r   r   r2   r2   *   s\    2%S/ # 
C 3 !d<&8 !| r   r2   )	r   rQ   r?   rC   IntEnumr   r   r   r2   r   r   r   <module>rq      sO     	  
t||  4<< "C Cr   