§
    ƒnóc½  ã                  ó°   — d dl mZ 	 d dlZd dlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ej        rddlmZ dd	lmZ dd
lmZ neZdd„Z G d„ de¦  «        ZdS )é    )ÚannotationsNé   )Úcoredata)Úmesonlib)Ú	OptionKey)ÚLibType)ÚEnvironment)ÚCompiler)Ú
DependencyÚargsúT.List[str]Úreturnc                ó„   — g }| D ]:}|                      d¦  «        r|                     d¦  «        s|d|gz  }Œ4||gz  }Œ;|S )Nú.jsú-z--js-library)ÚendswithÚ
startswith)r   Ú
final_argsÚis      úH/usr/lib/python3/dist-packages/mesonbuild/compilers/mixins/emscripten.pyÚwrap_js_includesr   &   sb   € Ø€JØð ð ˆØ�:Š:�eÑÔð 	 Q§\¢\°#Ñ%6Ô%6ð 	Ø˜>¨1Ð-Ñ-ˆJˆJà˜1˜#ÑˆJˆJØÐó    c                  ór   ‡ — e Zd Zdd„Zdd	„Zdˆ fd„Zedˆ fd„¦   «         Zdˆ fd„Ze	j
        fdˆ fd„Zˆ xZS )ÚEmscriptenMixinÚdirnameÚstrÚmoder   c                ón   — |dk    rd S |dk    rd}nd}t           j                             |d|z   ¦  «        S )NÚ
preprocessÚlinkÚjsÚozoutput.)ÚosÚpathÚjoin)Úselfr   r   Úsuffixs       r   Ú_get_compile_outputz#EmscriptenMixin._get_compile_output1   sD   € à�<ÒÐØ�4ð �6Š>ˆ>ØˆFˆFàˆFÝŒw�|Š|˜G Y°Ñ%7Ñ8Ô8Ð8r   Úenvú'Environment'r   c                ó¢   — dg}|j         j        t          d| j        | j        ¬¦  «                 j        }|r|                     d|› �¦  «         |S )Nz-pthreadÚthread_count)ÚlangÚmachinez-sPTHREAD_POOL_SIZE=)r   Úoptionsr   ÚlanguageÚfor_machineÚvalueÚappend)r&   r)   r   Úcounts       r   Úthread_link_flagsz!EmscriptenMixin.thread_link_flags>   sX   € Øˆ|ˆØ”\Ô)­)°NÈÌÐ`dÔ`pÐ*qÑ*qÔ*qÔrÔxˆØð 	8Ø�KŠKÐ6¨uÐ6Ð6Ñ7Ô7Ð7Øˆr   ú%'coredata.MutableKeyedOptionDictType'c                óÔ   •— t          ¦   «                              ¦   «         }t          d| j        | j        ¬¦  «        }|                     |t          j        dd¦  «        i¦  «         |S )Nr,   )r.   r-   z=Number of threads to use in web assembly, set to 0 to disable)r   Né   )ÚsuperÚget_optionsr   r1   r0   Úupdater   ÚUserIntegerOption)r&   ÚoptsÚkeyÚ	__class__s      €r   r:   zEmscriptenMixin.get_optionsE   sk   ø€ Ý‰wŒw×"Ò"Ñ$Ô$ˆÝ˜°Ô0@ÀtÄ}ÐUÑUÔUˆØ�ŠØ•Ô+ØOØñô ð
ñ 	ô 	ð 	ð ˆr   r   c                ó`   •— t          t          ¦   «                              |¦  «        ¦  «        S ©N)r   r9   Únative_args_to_unix)Úclsr   r?   s     €r   rB   z#EmscriptenMixin.native_args_to_unixQ   s#   ø€ å¥¡¤× ;Ò ;¸DÑ AÔ AÑBÔBÐBr   Údepú'Dependency'c                ó`   •— t          t          ¦   «                              |¦  «        ¦  «        S rA   )r   r9   Úget_dependency_link_args)r&   rD   r?   s     €r   rG   z(EmscriptenMixin.get_dependency_link_argsU   s#   ø€ Ý¥¡¤× @Ò @ÀÑ EÔ EÑFÔFÐFr   ÚlibnameÚ
extra_dirsÚlibtyper   úT.Optional[T.List[str]]c                óÜ  •— |                      d¦  «        s$t          ¦   «                              ||||¦  «        S t          j                             |¦  «        r"t          j                             |¦  «        r|gS t          |¦  «        dk    rt          j	        d¦  «        ‚|D ]F}t          j         
                    ||¦  «        }t          j                             |¦  «        r|gc S ŒGd S )Nr   r   z]Looking up Emscripten JS libraries requires either an absolute path or specifying extra_dirs.)r   r9   Úfind_libraryr#   r$   ÚisabsÚexistsÚlenr   ÚEnvironmentExceptionr%   )r&   rH   r)   rI   rJ   ÚdÚabs_pathr?   s          €r   rM   zEmscriptenMixin.find_libraryX   sí   ø€ à×Ò Ñ&Ô&ð 	KÝ‘7”7×'Ò'¨°°jÀ'ÑJÔJÐJÝŒ7�=Š=˜Ñ!Ô!ð 	!ÝŒw�~Š~˜gÑ&Ô&ð !Ø�yÐ Ýˆz‰?Œ?˜aÒÐÝÔ/ð  1Pñ  Qô  Qð  QØð 	"ð 	"ˆAÝ”w—|’| A wÑ/Ô/ˆHÝŒw�~Š~˜hÑ'Ô'ð "Ø �zÐ!Ð!Ð!ð"àˆtr   )r   r   r   r   r   r   )r)   r*   r   r   )r   r6   ©r   r   r   r   )rD   rE   r   r   )
rH   r   r)   r*   rI   r   rJ   r   r   rK   )Ú__name__Ú
__module__Ú__qualname__r(   r5   r:   ÚclassmethodrB   rG   r   ÚPREFER_SHAREDrM   Ú__classcell__)r?   s   @r   r   r   /   sä   ø€ € € € € ð9ð 9ð 9ð 9ðð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð ðCð Cð Cð Cð Cñ „[ðCðGð Gð Gð Gð Gð Gð )0Ô(=ðð ð ð ð ð ð ð ð ð ð r   r   rT   )Ú
__future__r   Úos.pathr#   ÚtypingÚTÚ r   r   r   r   ÚTYPE_CHECKINGÚenvironmentr	   Úcompilers.compilersr
   Údependenciesr   Úobjectr   r   © r   r   ú<module>rf      s  ðð #Ð "Ð "Ð "Ð "Ð "à Nà €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à„?ð 	Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ø*Ð*Ð*Ð*Ð*Ð*Ð*ð €Hðð ð ð ð6ð 6ð 6ð 6ð 6�hñ 6ô 6ð 6ð 6ð 6r   